首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >` `npm link x`与` `npm install /path/to/x`的区别

` `npm link x`与` `npm install /path/to/x`的区别
EN

Stack Overflow用户
提问于 2018-06-04 13:46:31
回答 2查看 10.5K关注 0票数 44

我以为我明白了

代码语言:javascript
运行
复制
npm link x

代码语言:javascript
运行
复制
npm install /local/path/to/x

最初我认为前者创建了一个指向x的符号链接,而后者在您的项目中安装了一个单独的x副本,而不是符号链接。

然而,我最近注意到我最初的印象是错误的,它们似乎都使用符号链接-所以两者之间有区别吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-05 05:29:54

Alex Mills的An article on Medium赤裸裸地展示了这一点。

它说,npm link xnpm install /local/path/to/x之间的区别是:

  1. 最大的不同在于npm install /local/path/x将运行预安装/安装后挂钩,但是npm link x将使用全局NPM空间,而npm install /local/path/x不会。npm link在全局空间中创建一个到x的symlink,然后当您从y调用npm link x时,它不是直接创建到x的symlink,而是创建到全局symlink的symlink。如果您使用不同的全局node.js版本,这是一个重要的差异,例如,NVM.
  2. npm install /absolute/path/x将更改package.json,而npm link x不会。

要获得新的本地副本而不是符号链接,请使用npm pack,如下所示:

代码语言:javascript
运行
复制
tgz="$PWD/$(npm pack)"
cd <other project>
npm install "$tgz"

您也可以使用cp/rsync,但这不会运行安装挂钩或将可执行文件放入node_modules/.bin...that中。

票数 30
EN

Stack Overflow用户

发布于 2018-06-12 13:11:33

npm链接

代码语言:javascript
运行
复制
npm link
npm link <folder>

以上两个命令都将在全局包中创建<folder>的符号链接。

现在,npm link <folder>将在您的node_modules文件夹中为您的当前项目提供相同的符号链接。这些名称将基于package.json中的项目名称,而不是基于要链接的文件夹名称

当前项目的package.json不会被触摸或更改

仍将安装软件包的依赖项,如您在此处的代码中所见

https://github.com/nodejs/node/blob/31d5bdea70e44802918d6f4aa7c378bc1992be54/deps/npm/lib/link.js#L156

所以总结一下

  1. 它会在全局文件夹中创建符号链接(总是),
  2. 它不会更改package.json
  3. It,也不会安装任何缺少的dependencies

npm安装

现在npm install <folder>和这个有点不同

它不会在全局文件夹中创建符号链接,而是会更改并添加对package.json

  • It的引用,创建到 folder的符号链接
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50674052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档