如何使用修改后的npm包部署node.js程序?

时间:2011-07-10 01:49:00

标签: node.js npm

我正在使用jsdom包作为node.js,但我遇到了问题。我修复了我在我的计算机上手动编辑/ node_modules / jsdom / lib / jsdom / level2 / languages中的源代码,它可以工作。但是,现在我想将我的程序发布到另一台服务器。

处理此修改后的依赖项的最佳方法是什么?一般来说,我应该如何处理从npm install修改的依赖项?

2 个答案:

答案 0 :(得分:4)

嗯,正确的做法是向维护者提交补丁,以便可以在上游(长期)修复。同时,只需保留修改后的文件,安装主程序包后,重命名原始文件(mv file.js file.js.ORIG),然后在副本中复制符号链接(ln -s ../../../patches/jsdom/level2/languages/file.js file.js)。

这是一个快速而肮脏的选择。另一个选择是使用修改后的源和点NPM构建一个新的npm tarball。 npm install命令可以将本地文件系统路径转换为.tar.gz存档。那也行。

答案 1 :(得分:3)

如果修补程序已包含在代码库中,但尚未发布到npm,则可以使用npm来安装tarball而不是已注册的包。 Github为每个提交提供tarball,只需单击下载。

所以对于jsdom的这个特殊问题。您可以使用以下npm命令:

npm install https://github.com/tmpvar/jsdom/tarball/4cf155a1624b3fb54b2eec536a0c060ec1bab4ab

它也适用于package.json:

"dependencies" : {
  "jsdom" : "https://github.com/tmpvar/jsdom/tarball/4cf155a1624b3fb54b2eec536a0c060ec1bab4ab"
}

在此处阅读更多内容:https://github.com/tmpvar/jsdom/commit/4cf155a1624b3fb54b2eec536a0c060ec1bab4ab#commitcomment-475293

谢谢tmpvar!