【发布时间】:2018-11-13 09:41:13
【问题描述】:
我以为我理解了两者的区别
npm link x
和
npm install /local/path/to/x
最初我认为前者创建了一个指向 x 的符号链接,而后者在您的项目中安装了一个单独的 x 副本,而不是对其进行符号链接。
然而,我最近注意到我原来的印象是错误的,它们似乎都使用了符号链接——那么两者之间有什么区别吗?
【问题讨论】:
标签: node.js npm npm-install npm-link
我以为我理解了两者的区别
npm link x
和
npm install /local/path/to/x
最初我认为前者创建了一个指向 x 的符号链接,而后者在您的项目中安装了一个单独的 x 副本,而不是对其进行符号链接。
然而,我最近注意到我原来的印象是错误的,它们似乎都使用了符号链接——那么两者之间有什么区别吗?
【问题讨论】:
标签: node.js npm npm-install npm-link
An article on Medium by Alex Mills 将其展示出来。
上面写着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 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... 中。
【讨论】:
npm 链接
npm link
npm link <folder>
上述两个命令都会在全局包中创建<folder> 的符号链接。
现在npm link <folder> 将在您的node_modules 文件夹中为您当前的项目进行相同的符号链接。这些名称将基于 package.json 中的项目名称,而不是基于您要链接的文件夹名称
您当前项目的package.json不会被触摸或更改
仍然会安装包的依赖项,正如您在此处的代码中看到的那样
总结一下
npm 安装
现在npm install <folder> 和这个有点不同
【讨论】: