如何覆盖node_modules内的文件或函数

问题描述 投票:0回答:2

我需要替换位于“node_modules”中的依赖项文件。直接修改node_modules并不是一个好习惯,因为它会被下一个“npm install”覆盖。 如何在不触及“node_modules”的情况下替换此类文件?例如,我们可以通过打字来完成。但其他文件呢?

就我而言,我想替换“foo.component.less”和“foo.component.metadata.json”文件。仅在主机中创建新文件没有帮助,因为它会覆盖对 css 的访问,但不会覆盖元数据。

angular npm node-modules
2个回答
7
投票
  1. 最佳但冗长的解决方案:创建包源代码的副本/分支:

    • 复制/分叉包的源代码;
    • 进行更新;
    • 作为依赖项而不是原始依赖项导入到项目中;
    • 更新
      readme.md
      文件,在未来的升级中不要错过。
  2. 如果我们不需要完全更新文件和结构,则将覆盖文件放置到项目的根目录就足够了(对于

    Angular
    )。例如,这样的
    css
    文件将覆盖
    node_modules
    :

    中的相同文件
    • 将所需文件复制到项目根目录;
    • 更新该文件。现在
      npm
      先看一下。

0
投票

有一个选项使用

patch-package

npm install patch-package

我们可以直接在node_modules文件夹中进行必要的更改,然后使用以下命令创建补丁:

npx patch-package <package-name>

然后更新

package.json
文件中的脚本部分

"scripts": {
    "postinstall": "patch-package",
    ...
}

每次

npm install
运行时都会执行补丁。

© www.soinside.com 2019 - 2024. All rights reserved.