Angular 6 - 删除 node_module 包并将其用于本地项目更改

Angular 6 - Remove node_module package and use it in for local project changes

我们决定在我们的项目中为 table 网格使用 ng2-smart-table。但它并不能完全支持我们在项目中需要做的事情。

因此我们决定更改其包级别的代码(node_modules 目录中的文件)。所以我不确定该怎么做,因为如果我在他们的包级别上更改某些内容并且如果我们错误地 运行 npm install 命令,如果他们有任何更新,它将覆盖我们的更改。

那么,如果我想在 ng2-smart-table node_modules 文件中进行更改,我们需要做什么。简单地从 package.json 中删除 ng2-smart-table 的条目会好吗?或者有更好的方法吗?

你有两个选择,我想你会喜欢第一个:

(1) 使用 npm 补丁包 ... https://www.npmjs.com/package/patch-package

您以 diff 的形式为包生成补丁。补丁保存在你的仓库中。当你 npm install 时,它会下载正常的包,然后在安装后每次使用 diff 修补它 - 安装后会在 npm 安装完成后自动触发。

(2) npm install 你想要更改的模块,cd 到 node_modules 中的目录 - 进行更改,包括更改 package.json 中的名称,然后 npm publish(所有操作都必须在 package.json 中完成node_modules) 中的相关目录 - 您刚刚发布了您自己的软件包版本。现在改用它。

在方法 (1) 中,我不确定补丁包将如何处理对原始包的更新。在方法 (2) 中,您将永远不会再获得对主包的任何更新,因为现在这是一个您已发布到 npm 的全新包。