我使用npm link package --save
创建一个全局安装包的本地链接。
它正确创建了包的链接(如果尚未安装,则会全局安装);但它无法更新package.json
中的依赖项。
我在这里缺少什么?
答案 0 :(得分:3)
根据npm docs,npm 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