使用全局包打包Node.js应用程序

3
我们有一个项目需要打包成zip文件,以便分发给客户。对于普通的node_modules目录,我没有遇到任何问题。我只需将该目录与node.exe一起放在我的项目文件夹中,并且可以在其他计算机上启动我们的项目,而无需安装node或运行任何npm命令。
但是现在我对phantomjs有一个依赖,它需要作为全局软件包安装 npm install -g phantomjs
我该如何将这样的模块打包到我们的项目中呢?我最初想将phantomjs复制到本地的node_modules目录中,并将路径变量NODE_PATH设置为该目录。然而它找不到phantomjs。
开发和客户平台都是windows。
1个回答

0

一般来说,使用--save标志安装全局依赖项并像./node_modules/phantomjs/bin/phantomjs /*现在执行*/一样调用它们的二进制文件是可以的(只是举个例子)。

然而,对于Phantom来说并不那么简单,因为它需要下载二进制文件和/或进行编译。你有三个选择:

  1. ssh到目标机器,然后在定义中安装npm install -g phantomjs或者在manifest文件(例如Dockerfile)中定义,如果你正在使用容器。
  2. 按照这里的建议从源代码编译。
  3. 如果你正在使用CLI,则只需使用--save方法。

所以我强烈建议将其制作成Docker镜像并作为tarball发货。不幸的是,你不能压缩平台相关的Phantom安装程序。

此外,许多依赖项(如karma-runner-phantomjs)都会查找全局依赖项的路径以解决它们的使用问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接