`npm link –save`不会更新我的package.json的依赖关系

我正在使用npm link package --save来创build一个全局安装包的本地链接。

它正确地创build了到包的链接(并且将在全局安装,以防尚未安装)。 但它无法更新package.json的依赖关系。

我在这里错过了什么?

根据npm文档 , npm link不打算改变你的package.json 。 它为您的文件系统创build一个包的符号链接。

这允许你仍然通过名字引用一个模块,但是从你的本地文件系统中获取它:

 cd ~/projects/node-redis # go into the package directory npm link # creates global link cd ~/projects/node-bloggy # go into some other package directory. npm link redis # link-install the package 

如果你实际上打算在你的package.json插入一个文件path,请使用npm install来代替:

 npm install --save /path/to/package 

然后你会在package.json文件中看到一个引用:

 "dependencies": { "local-package": "file:/path/to/package" } 

坚韧我强烈build议你使用npm link ,因为它使你的package.json更加便携。 如果您使用本地文件path提交更改,则可能会在另一个系统上变为无效,或者如果移动文件。

你不会错过任何东西,这是不可能的(还)。

在npm问题跟踪器( https://github.com/npm/npm/issues/1166 )上有一个打开的function请求。

我为此创build了一个小工具: npm-link-save

NPM-链接保存

带有--save (或--saveDev )的npm-link将链接的依赖项保存到你的package.json

您也可以链接多个依赖关系。

安装

 npm i -g npm-link-save 

用法

 npm-link-save express # or npm-links express npm-links -D express // links in devDependencies npm-links express morgan // multiple links