1

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

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

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

4

1 回答 1

2

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

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

您以差异的形式为包生成补丁。补丁保存在您的存储库中。当你 npm install 时,它会下载正常的包,然后在 postinstall 期间每次都用差异修补它 - postinstall 在 npm install 完成后自动触发。

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

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

于 2018-08-08T22:19:27.110 回答