我正在使用jsdom包作为node.js,但我遇到了问题。我修复了我在我的计算机上手动编辑/ node_modules / jsdom / lib / jsdom / level2 / languages中的源代码,它可以工作。但是,现在我想将我的程序发布到另一台服务器。
处理此修改后的依赖项的最佳方法是什么?一般来说,我应该如何处理从npm install修改的依赖项?
答案 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!