我们有一个项目必须打包为 zip,以便我们可以将其分发给我们的客户。使用普通的 node_modules 目录我没有问题。我只需将目录和 node.exe 一起放在我的项目文件夹中,就可以在其他每台计算机上启动我们的项目,而无需安装 Node 或运行任何 npm 命令。
但现在我依赖于 phantomjs,它需要作为全局包安装 npm install -g phantomjs
。
我如何将这样的模块打包到我们的项目中?我首先想到的是将phantomjs复制到本地的node_modules目录下,并将路径变量NODE_PATH设置到该目录下。它没有找到 phantomjs。
开发平台和客户端平台都是windows。
最佳答案
嗯,通常可以使用 --save
标志安装全局依赖项并像 一样调用它们的 bins./node_modules/phantomjs/bin/phantomjs/*now executes*/
(仅作为说明性示例)。
但是,使用 Phantom 就没那么简单了,因为它需要下载二进制文件和/或什至进行编译。您将有三个选择:
- ssh 进入目标并在
npm install -g phantomjs
之前或在 list 中定义它,例如Dockerfile
如果您使用的是容器,就这样。 - 按照建议从源代码编译它here .
- 如果您使用的是 CLI,则只需使用
--save
方法。
因此,我几乎不建议仅从中制作一个 Docker 镜像并将其作为 tarball 发送。不幸的是,您不能压缩依赖于平台的 Phantom 安装。
还有许多依赖项,如 karma-runner-phantomjs
会寻找全局依赖项的路径来解析它以供使用。
关于windows - 使用全局包打包 nodejs 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30071118/