npm link,未安装,package.json 依赖项
npm link, not install, package.json dependencies
我想本地 link 我 package.json
中声明的所有显式依赖项。
如果我只是尝试 npm link
我得到的是所有包的本地安装,无论它们是否已经全局安装。
我没想到。我所期望的和我需要的是一种类似于我会做 npm link package
的行为。我希望 npm link
检查 package.json
中的依赖项并为每个创建 link,并在需要时进行全局安装。
npm link
不是为那样工作而设计的。有两种使用方式,都取决于你预先下载你想要的依赖link。
第一种方式(两步)
cd ../dependency
npm link
cd ../project
npm link dependency
第二种方式(一步)
cd project
npm link ../dependency
我想你想做的是 npm link
目标是全局安装的包(而不是全局安装 link 到文件系统上的某个目录)。 npm
不支持。
经过几个月的等待,我已经完成了自己的实现,我将其张贴在这里以供记录。
我有两个小脚本
一个 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
我想本地 link 我 package.json
中声明的所有显式依赖项。
如果我只是尝试 npm link
我得到的是所有包的本地安装,无论它们是否已经全局安装。
我没想到。我所期望的和我需要的是一种类似于我会做 npm link package
的行为。我希望 npm link
检查 package.json
中的依赖项并为每个创建 link,并在需要时进行全局安装。
npm link
不是为那样工作而设计的。有两种使用方式,都取决于你预先下载你想要的依赖link。
第一种方式(两步)
cd ../dependency
npm link
cd ../project
npm link dependency
第二种方式(一步)
cd project
npm link ../dependency
我想你想做的是 npm link
目标是全局安装的包(而不是全局安装 link 到文件系统上的某个目录)。 npm
不支持。
经过几个月的等待,我已经完成了自己的实现,我将其张贴在这里以供记录。
我有两个小脚本
一个 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