Answers:
您可以直接编辑文件,但是每当npm更新时,该文件就会被覆盖,最好的做法是直接访问源代码。
如果更改影响整个模块的功能,并且可能对其他模块有用,那么您可能希望对github上的原始源代码有所贡献,并寻找要实施的更改。
如果这是必需的专有功能,并且对模块的开发无济于事,那么最好的办法是从github派生它并进行更改。您可以使用NPM直接从github安装项目,该方法将使您可以将将来的更改从原始源集成到自定义版本中。
要直接从github安装,请使用以下命令:
npm install https://github.com/<username>/<repository>/tarball/master
/node_modules
并运行,npm install
然后一切正常!
您可以使用补丁包对节点模块进行更改并保留更改。
这可以通过首先在内部对软件包进行更改node_modules
,然后运行以下命令<package name>
作为刚刚更改过的软件包的名称来完成。
npx patch-package <package name>
然后,patch-package将创建一个patches
文件夹,其中包含一个文件,代表您的更改。然后可以将此文件提交到git,然后可以通过运行npx patch-package
(不带任何参数)来还原修补程序。
可选步骤:
在package.json的脚本部分中添加以下内容,以在执行“ npm install”时自动修补依赖项。
"postinstall": "npx patch-package"
我不想发布新模块,也不想npm install
覆盖所做的更改。我找到了针对这两个问题的解决方案,但最好采用@Sdedelbrock的建议。但是,如果您想这样做,可以按照以下方法操作:
package.json
文件以删除要编辑的依赖项。/node_modules
文件夹,然后将文件夹移动到存储库中可以提交的其他位置。所以现在/node_modules/dependency
在/dependency
cd
进入依赖目录并输入 npm link
cd
进入项目目录的根目录并输入npm link dependency
,请务必在/node_modules
和/dependency
如果一切正常,您现在应该具有在中创建的符号链接/node_modules/dependency
。现在,您可以运行您的项目以查看其是否有效。