`npm link --save`不会更新我的package.json上的依赖项

时间:2015-02-22 23:48:02

标签: node.js npm

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

它正确创建了包的链接(如果尚未安装,则会全局安装);但它无法更新package.json中的依赖项。

我在这里缺少什么?

3 个答案:

答案 0 :(得分:3)

根据npm docsnpm link并非旨在更改您的package.json。它会在文件系统上为包创建符号链接。

这允许您仍然按名称引用模块,但是从本地文件系统中提取它:

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中插入文件路径,请改用npm install

npm install --save /path/to/package

然后您会在package.json文件中看到引用:

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

虽然我强烈建议您改用npm link,因为它会使您的package.json更具便携性。如果您使用本地文件路径提交更改,则可能在其他系统上无效,或者如果您移动文件。

答案 1 :(得分:1)

你没有遗漏任何东西,但这是不可能的。

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

答案 2 :(得分:1)

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

  

npm-link-save

     

npm-link--save(或--saveDev)一起保存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