首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何编辑通过npm安装的节点模块?

如何编辑通过npm安装的节点模块?
EN

Stack Overflow用户
提问于 2012-11-09 08:08:52
回答 4查看 122.6K关注 0票数 182

我使用的是node_swiz模块,该模块又使用验证器模块。

我想对验证器模块进行更改,但我使用npm install来安装模块/依赖项。

我可以只对node_modules中的验证器模块进行更改吗?或者当我发布到heroku或下次运行npm install时,会重新创建node_modules依赖项并获取最新版本吗?

结构看起来像这样:

代码语言:javascript
复制
myNodeApplication
  - node_modules
     - swiz
         - node_modules
            - validator [this is the library I want to edit]

谢谢你的帮助!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-11-09 12:24:22

你可以直接编辑这个文件,但是只要npm更新,这个文件就会被覆盖,最好的办法就是直接进入源代码。

如果更改会影响整个模块的功能,并且可能对其他人有用,那么您可能希望对github上的原始源做出贡献,并寻找要实现的更改。

如果这是需要的专有功能,并且对模块的开发没有帮助,最好的做法是从github派生它并进行更改。您可以使用NPM直接从github安装项目,此方法将允许您将未来的更改集成到来自原始源的自定义版本中。

要直接从github安装,请使用以下命令:

npm install https://github.com/<username>/<repository>/tarball/<branch>

票数 305
EN

Stack Overflow用户

发布于 2020-06-25 11:40:56

您可以使用patch-package对节点模块进行更改并将其持久化。

这可以通过首先在node_modules中对包进行更改,然后运行以下命令来完成,其中<package name>是您刚刚更改的包的名称。

代码语言:javascript
复制
npx patch-package <package name>

然后,patch-package将创建一个patches文件夹,其中包含一个代表您的更改的文件。然后可以将该文件提交给git,稍后可以通过运行npx patch-package (不带任何参数)恢复补丁。

可选步骤:

在package.json的脚本部分添加以下代码,以便在执行"npm install“时自动修补依赖项。

代码语言:javascript
复制
"postinstall": "npx patch-package" 
票数 114
EN

Stack Overflow用户

发布于 2020-06-25 11:35:59

我不想发布新的模块,也不想让npm install覆盖我的更改。我找到了这两个问题的解决方案,但采纳@Sdedelbrock的建议可能会更好。但如果你想这样做,方法如下:

  1. 编辑package.json文件以删除要编辑的依赖项。
  2. 转到项目的/node_modules,然后将该文件夹移动到存储库中可以提交的其他位置。因此,现在/node_modules/dependency位于/dependency
  3. cd,进入依赖项目录,在项目目录的根目录中键入npm link
  4. cd,然后键入npm link dependency,这一点很重要,请在/node_modules/dependency

之外执行此操作

如果一切正常,您现在应该有一个在/node_modules/dependency中创建的符号链接。现在,您可以运行您的项目来查看它是否工作。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13300137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档