npm install不会覆盖现有的node_module软件包(自定义更改)

时间:2019-06-18 16:42:29

标签: angular npm

我正在开发带有一些外部软件包(例如packageA)的angular应用程序,但是该外部软件包中有一个错误,并且作为一种变通办法,我编辑了node_modules / packageA / somescript.js并在其正常工作之后。 >

现在,当我们运行npm install时,我的更改将被实际的软件包脚本覆盖。

我在git中添加了node_modules / packageA /并提交,但是每当我们运行npm时,它都会覆盖它。

现在,我希望每当我们运行npm install时,它都不会覆盖我在node_modules文件夹中提交的更改,怎么办?

3 个答案:

答案 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和因此,我的自定义更改不会被覆盖。