我以为我理解了它们之间的区别
npm link x
和
npm install /local/path/to/x
最初我以为前者为x创建了一个符号链接,而后者在你的项目中安装了一个单独的x副本,而不是对它进行符号链接。
然而,我最近注意到我的原始印象是错误的,他们似乎都使用符号链接 - 所以两者之间有什么区别,它是什么?
亚历克斯米尔斯的An article on Medium露出了它。
它说npm link x
和npm install /local/path/to/x
之间的区别是:
npm install /local/path/x
将运行preinstall / postinstall挂钩,但npm link x
不会。npm link
使用全球NPM空间,npm install /local/path/x
没有。 npm链接在全局空间中创建一个符号链接到x,然后当你从y调用npm link x时,它会创建一个不直接指向x的符号链接,而是创建一个符号链接到全局符号链接。如果您使用不同的全局node.js版本(例如NVM),则这是一个重要的差异。npm install /absolute/path/x
将改变package.json,npm link x
不会。要获取新的本地副本而不是符号链接,请使用npm pack
,如下所示:
tgz="$PWD/$(npm pack)"
cd <other project>
npm install "$tgz"
您也可以使用cp / rsync,但这不会运行安装挂钩或将可执行文件放在node_modules/.bin
中...这将起作用。
asl链接
npm link
npm link <folder>
以上两个命令都将在全局包中创建<folder>
的符号链接。
现在,npm link <folder>
将在你的node_modules
文件夹中对你当前的项目进行符号链接。这些名称将基于package.json
中的项目名称,而不是基于您链接的文件夹名称
您当前项目的package.json
将不会被触及或更改
正如您在此处的代码中所看到的,仍将安装程序包的依赖项
总结一下
npm安装
现在npm install <folder>
与此有点不同