在本地构建和使用npm包

时间:2019-04-07 15:44:13

标签: angular npm

我在ngx-mask软件包中进行了一些自定义修改,需要在本地进行测试。

如何覆盖已安装的npm软件包?

当前,该软件包在packages.json文件中被声明为依赖项,如下:

"ngx-mask": "^7.8.9"

如果可能的话,我宁愿不要分叉原始软件包,也不要为此使用github。

2 个答案:

答案 0 :(得分:4)

'npm link' 命令就是为此而制作的。

在您的测试存储库(您使用ngx-mask包的地方)运行:

npm link /path/to/your/locally/modified/ngx-mask/package

这会将您本地修改的 ngx-mask 安装到您的 test 存储库中。

当您完成对 ngx-mask 包的本地版本的测试后,您可以简单地取消链接。要取消链接 ngx-mask 的本地版本,请在您的 test 存储库中运行:

npm unlink --no-save /path/to/your/locally/modified/ngx-mask/package

如果要重新安装 ngx-mask 包的 registry 版本,请运行:

npm install

答案 1 :(得分:1)

如果在计算机上进行了这些更改。 (我假设你有)

运行您更改过的build程序包中的ngx-mask

然后导航到dist /编译后的输出文件夹所在的任何位置。

然后在该文件夹中运行npm pack。这将使用您的自定义修改为您的软件包创建一个.tgz压缩文件。

然后将该文件放入项目的根目录(您可以将其放在任何位置,但使用root可以使事情变得容易)

然后在您的package.json中将版本号ngx掩码替换为以下"ngx-mask": "file:my-packed-file.tgz"

现在使用新的npm install运行package.json,现在应该将已修改的副本作为依赖项加载到node_modules中。