我正在开发带有一些外部软件包(例如packageA)的angular应用程序,但是该外部软件包中有一个错误,并且作为一种变通办法,我编辑了node_modules / packageA / somescript.js并在其正常工作之后。 >
现在,当我们运行npm install时,我的更改将被实际的软件包脚本覆盖。
我在git中添加了node_modules / packageA /并提交,但是每当我们运行npm时,它都会覆盖它。
现在,我希望每当我们运行npm install时,它都不会覆盖我在node_modules文件夹中提交的更改,怎么办?
答案 0 :(得分:0)
在回购副本中创建一个名为libs
的文件夹,并在其中粘贴外部程序包,无论使用该模块的位置如何,都将其导入为import * as something from '../libs/external_package_name'
。这是我现在可以想到的短期解决方案
如果您想要一个永久性的解决方案,请分叉该软件包并提交pr,请等待其合并,如@phix所建议
感谢您的提问!
快乐编码!
答案 1 :(得分:0)
可以使用git分支作为依赖项...只需将package.json中的依赖项版本替换为您的仓库... "jonchurch/botkit#multi-hears"
阅读本文以获取更多信息
https://medium.com/@jonchurch/use-github-branch-as-dependency-in-package-json-5eb609c81f1a
为您...应该是这样的
"dependencies": {
"packageA": "yourgithub/reponame#branch-name",
}
答案 2 :(得分:0)
在邮件中,我说
我在git中添加了node_modules / packageA /并提交了,但是无论何时 我们运行npm install覆盖它。
但是这个分析是错误的,如果我们已经在git中添加了它,实际上它不会覆盖自定义更改,因为每当npm install运行带有node_modules文件夹的check package.json程序包条目,并且我的自定义更改在那里,因此不再从npm和因此,我的自定义更改不会被覆盖。