我希望本地链接我package.json
中声明的所有显式依赖项。
如果我只是尝试npm link
我得到的是所有软件包的本地安装,无论它们是否已经全局安装。
我没想到。我所期望的和我需要的是一种类似于我npm link package
的行为。我希望npm link
检查package.json
中的依赖项以及每个依赖项,以创建链接,并在需要时进行全局安装。
答案 0 :(得分:4)
npm link
并非旨在以这种方式工作。有两种方法可以使用它,它们都依赖于您预先下载要链接的依赖项。
cd ../dependency
npm link
cd ../project
npm link dependency
cd project
npm link ../dependency
我认为您尝试做的是npm link
,其中目标是全局安装的包(而不是全局安装的文件系统某个目录的链接)。 npm
并不支持。
答案 1 :(得分:1)
经过几个月的等待,我已经推出了自己的实施方案,我将在此处发布以供记录。
我有两个小脚本
一个packageDependencies.js
,用于从package.json
中提取所有依赖项。通常,代码有:
fs.readFile(process.argv[2]||'package.json','utf8',(err,data)=>{
if(err) return console.error(err);
var o = JSON.parse(data);
for (var p in o.dependencies) console.log(p);
for (var p in o.devDependencies) console.log(p);
});
和另一个npmlink.sh
迭代该列表和每个包,只有npm --global install
和npm link
。示意性地,
for d in "$(node packageDependencies.js)"; do
npm --global install $d
npm link $d
done