npm链接,而不是安装,package.json依赖项

PA.*_*PA. 5 node.js npm

我想本地链接在我的中声明的所有显式依赖项package.json

如果我只是尝试 npm link得到的结果是所有软件包的本地安装,则与它们是否已经全局安装无关。

没想到 我所期望的和所需要的是类似于我将要执行的行为npm link package。我想npm link检查package.json每个对象中的依赖关系,以创建链接,并在需要时进行全局安装。

Sam*_*kes 5

npm link并非以这种方式工作。有两种使用方式,两种方式都取决于您事先下载要链接的依赖项。

第一种方式(两个步骤)

cd ../dependency npm link cd ../project npm link dependency

第二种方式(一步)

cd project npm link ../dependency

我认为您想要做的是npm link目标是全局安装的软件包(而不是文件系统上某个目录的全局安装链接)。 npm不支持。

参考:https : //docs.npmjs.com/cli/link


PA.*_*PA. 3

经过几个月的等待,我已经完成了自己的实现,我将其发布在这里以供记录。

我有两个小脚本

一种packageDependencies.jspackage.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);
});
Run Code Online (Sandbox Code Playgroud)

另一个npmlink.sh迭代该列表,对于每个包,只是npm --global installnpm link。示意性地说,

for d in "$(node packageDependencies.js)"; do 
  npm --global install $d
  npm link $d
done
Run Code Online (Sandbox Code Playgroud)