我以为我明白了
之间的区别npm link x
和
npm install /local/path/to/x
最初我以为前者为x创建了一个符号链接,而后者在你的项目中安装了一个单独的x副本,而不是对它进行符号链接。
然而,我最近注意到我的原始印象是错误的,他们似乎都使用符号链接 - 所以这两者之间是否存在差异?它是什么?
答案 0 :(得分:14)
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创建符号链接
在全局空间中,然后当你从中调用npm link x时
y,它创建一个不直接映射到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
中......这将有效。
答案 1 :(得分:4)
npm链接
npm link
npm link <folder>
以上两个命令都将在全局包中创建<folder>
的符号链接。
现在npm link <folder>
会在您的node_modules
文件夹中为您当前的项目添加符号链接。这些名称将基于package.json
中的项目名称,而不是基于您链接的文件夹名称
不会触及或更改当前项目的package.json
仍然会安装软件包的依赖项,正如您在此处的代码中所看到的那样
总结
npm install
现在npm install <folder>
与此