我正在使用node_swiz模块,该模块又使用验证器模块.
我想对验证器模块进行更改,但我使用npm install来安装模块/依赖项.
我可以只更改node_modules中的验证器模块,还是重新创建node_modules依赖项,并在我发布到heroku或下次运行npm install时获取最新版本?
结构如下所示:
myNodeApplication
- node_modules
- swiz
- node_modules
- validator [this is the library I want to edit]
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助!
Sde*_*ock 203
你可以直接编辑文件,但是每当npm更新时都会被覆盖,最好的办法就是直接找到源文件.
如果更改影响整个模块的功能,并且可能对其他人有用,您可能希望在github上贡献原始源并查找要实现的更改.
如果这是所需的专有功能,并且无法帮助开发模块,那么最好的办法是从github分叉并进行更改.您可以使用NPM直接从github安装项目,这种方法可以让您将原始源中的未来更改集成到您的自定义版本中.
要直接从github安装,请使用以下命令:
npm install https://github.com/<username>/<repository>/tarball/master
Ped*_*ssi 97
您可以使用patch-package对节点模块进行更改并保持更改。
这可以通过首先对里面的包进行更改node_modules
然后运行以下命令来完成,这是<package name>
您刚刚更改的包的名称。
npx patch-package <package name>
Run Code Online (Sandbox Code Playgroud)
然后 patch-package 将创建一个patches
文件夹,里面有一个文件,代表您的更改。然后可以将此文件提交到 git,稍后可以通过运行npx patch-package
(不带任何参数)来恢复补丁。
可选步骤:
在 package.json 的脚本部分添加以下内容,以便在执行“npm install”时自动修补依赖项。
"postinstall": "npx patch-package"
Run Code Online (Sandbox Code Playgroud)
Dan*_*lan 16
我不想发布新模块,也不想npm install
覆盖我的更改。我找到了解决这两个问题的方法,但最好采纳 @Sdedelbrock 的建议。但如果你想这样做,方法如下:
package.json
文件以删除您要编辑的依赖项。/node_modules
并将文件夹移动到存储库中可以提交的其他位置。所以现在/node_modules/dependency
是/dependency
cd
进入依赖目录并输入 npm link
cd
到你的项目目录和类型的根npm link dependency
,你这样做之外是很重要的/node_modules
,并/dependency
如果一切正常,您现在应该有一个在/node_modules/dependency
. 现在您可以运行您的项目以查看它是否有效。
小智 6
Fork Github repo 并进行必要的更改,然后您可以安装该软件包,例如
npm install git+https://github.com/visionmedia/express.git
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
61383 次 |
最近记录: |