windows - 使用全局包打包 nodejs 应用程序

标签 windows node.js

我们有一个项目必须打包为 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 就没那么简单了,因为它需要下载二进制文件和/或什至进行编译。您将有三个选择:

  1. ssh 进入目标并在 npm install -g phantomjs 之前或在 list 中定义它,例如Dockerfile 如果您使用的是容器,就这样。
  2. 按照建议从源代码编译它here .
  3. 如果您使用的是 CLI,则只需使用 --save 方法。

因此,我几乎不建议仅从中制作一个 Docker 镜像并将其作为 tarball 发送。不幸的是,您不能压缩依赖于平台的 Phantom 安装。

还有许多依赖项,如 karma-runner-phantomjs 会寻找全局依赖项的路径来解析它以供使用。

关于windows - 使用全局包打包 nodejs 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30071118/

相关文章:

windows - 批处理文件中的平均时间戳

node.js - 带有 UI 的 Docker 中的 Selenium 测试执行

mysql - 将 MySQL 数据库导出到 CouchDB 的最简单方法?

json - Nvidia Smi JSON 输出

PHP:ZipArchive::close():重命名临时文件失败:没有这样的文件或目录

c++ - BITMAPINFO 结构的 bmiColors 字段

node.js - Docker:服务器的空响应

python - 为MySQL数据库创建Api并使用Python连接到移动App

c++ - 信号处理期间的堆损坏

编辑 my.ini 后 MySQL 无法在 Windows 中打开