首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >`npm链接<pkg>[@<version>]中使用的可选版本是什么?

`npm链接<pkg>[@<version>]中使用的可选版本是什么?
EN

Stack Overflow用户
提问于 2022-03-22 23:05:25
回答 2查看 615关注 0票数 3

我对npm linknpm link <pkg>所做的事情的理解基本上与在文件中描述的一样

包连接是一个两步的过程. 首先,包文件夹中的npm链接将在全局文件夹{前缀}/lib/node_modules/中创建一个符号链接,该链接链接到执行npm链接命令的包。它还将将包中的任何回收站链接到{前缀}/bin/{name}。注意,npm链接使用全局前缀(请参见npm前缀-g的值)。 接下来,在其他位置,npm链接包名将创建一个符号链接,从全局安装的包名到当前文件夹的node_node/。

因此,我感到困惑的是,在包链接的第二步(例如,npm link my-package@3.1.4)中指定版本意味着什么。链接包的版本不完全取决于链接目录的内容吗?我不认为npm link的文档解释了这一点。

EN

回答 2

Stack Overflow用户

发布于 2022-04-04 11:21:38

据我所知,npm链接也安装了任何缺少的依赖项。它确保所有最新版本的依赖项都链接到全局文件夹,而非最新版本则在现场安装,但其深度依赖项位于自己的node_modules中。安装或更新给定的项目依赖项。如果没有指定依赖版本,则假设package.json或最新版本中的依赖版本。因此,如果没有指定依赖版本,则它将完全由链接目录的内容决定。

票数 0
EN

Stack Overflow用户

发布于 2022-04-04 17:47:28

使用link命令可以知道两种不同的行为。

第一个问题是,当您想要测试一个本地包时,实际上运行npm link ../../my-package就足够了,并且将从包中的package.json文件中确定版本。

第二个,对应于一种情况,您希望在不影响package.json的情况下测试远程包的特定版本。

假设您想在不更新moment@2.29.2的情况下安装package.json,那么可以运行

代码语言:javascript
复制
npm link moment@2.29.2

它将全局安装该包,然后在您的node_modules中为该包创建一个符号链接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71579974

复制
相关文章

相似问题

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