我已使用NPM下拉了一个节点模块,并将其添加到package.json
。但是,有必要更改一些模块的代码,因为它没有100%满足我的要求。
通常,当我使用节点和git
时,我会忽略node_modules
目录,并在部署到服务器时使用npm install
。
我想知道在我的场景中最佳做法是什么,有没有一种方法可以在package.json
中定义一个模块,如果它在运行npm install
时已经存在于本地,那么该模块应该被忽略?这已经是所有模块的默认行为吗?如果有人跑npm update
,那该怎么办?我会假设该模块的最新版本会被拉下来并覆盖我的更改吗?
或者我已经考虑过为模块分配原始的git repo,将我的fork重新发布到NPM然后再使用它。
将非常感谢提示和想法:)
答案 0 :(得分:4)
或者我已经考虑过为模块分配原始的git repo,将我的fork重新发布到NPM然后再使用它。
你在这里有正确的想法。在NPM下,您绝对不希望在托管和版本控制跟踪资源之间拆分您的问题。解决回购问题,然后回答这个问题:如果您将功能添加到现有模块,拉动请求是否可能很快就会合并并发布到NPM?
如果答案是否定的,因为功能不符合原始模块的意图,那么最好创建自己的模块,确保在自述文件中记下您的分支。
如果您正在等待PR,那么您可以在此期间选择。 NPM允许您link directly to your fork's .git file。