NPM 常用命令(十二)

目录

1、npm unpublish

1.1 使用语法

1.2 描述

2、npm unstar

2.1 使用语法

3、npm update

3.1 使用语法

3.2 描述

3.3 示例

插入符号依赖

波浪号依赖

低于 1.0.0 的插入符号依赖

 子依赖

 更新全局安装的包

4、npm version

4.1 使用语法

5、npm view

5.1 使用语法

5.2 描述

6、npm whoami

6.1 使用语法

6.2 描述

7、npx

7.1 使用语法

7.2 描述

7.3 npx 与 npm exec


1、npm unpublish

此命令会从npm注册表中删除发布的包

1.1 使用语法

npm unpublish [<package-spec>]

注意: 如果你的目的是鼓励用户升级,或者你不再想维护一个包,请考虑使用 deprecate命令(弃用)。

1.2 描述

这将从注册表中删除包版本,删除其条目并删除 tarball。

如果你没有登录,npm 注册表会返回错误。

如果你不指定版本或删除所有包的版本,则注册表将完全删除根包条目。

即使你取消发布包版本,该特定名称和版本组合也永远无法重复使用。 为了再次发布包,你必须使用新的版本号。 如果你取消发布整个包,则在 24 小时过去之前,你不得发布该包的任何新版本。

2、npm unstar

此命令将从你最喜欢的包中删除一个项目

2.1 使用语法

npm unstar [<package-spec>...]

 与 npm star 相反,它从你最喜欢的包列表中删除一个项目。

3、npm update

此命令可用来更新包

3.1 使用语法

npm update [<pkg>...]别名: up, upgrade, udpate

3.2 描述

此命令会将列出的所有包更新到最新版本(由 tag 配置指定),同时尊重包及其依赖的 semver 约束(如果它们也需要相同的包)。

它还将安装缺少的包。

如果指定了 -g 标志,此命令将更新全局安装的包。

如果未指定包名称,则将更新指定位置(全局或本地)中的所有包。

请注意,默认情况下,npm update 不会更新项目 package.json 中直接依赖的 semver 值,如果你还想更新 package.json 中的值,你可以运行: npm update --save(或将 save=true 选项添加到 配置文件 以使其成为默认行为)。

3.3 示例

对于下面的示例,假设当前包是 app,它依赖于依赖 dep1dep2、.. 等)。 dep1 的已发布版本是:

{"dist-tags": { "latest": "1.2.2" },"versions": ["1.2.2","1.2.1","1.2.0","1.1.2","1.1.1","1.0.0","0.4.1","0.4.0","0.2.0"]
}

插入符号依赖

如果 app 的 package.json 包含:

"dependencies": {"dep1": "^1.1.1"
}
那么 npm update 会安装 dep1@1.2.2,因为 1.2.2 就是 latest,1.2.2 满足 ^1.1.1。

注意:将会安装1.x.x的最后一个版本。

波浪号依赖

但是,如果 app 的 package.json 包含:

"dependencies": {"dep1": "~1.1.1"
}

在这种情况下,运行 npm update 将安装 dep1@1.1.2。 尽管 latest 标签指向 1.2.2,但这个版本不满足 ~1.1.1,相当于 >=1.1.1 <1.2.0。 所以使用满足 ~1.1.1 的最高排序版本,即 1.1.2

注意:将按照1.1.x的最后一个版本进行安装。

低于 1.0.0 的插入符号依赖

假设 app 对低于 1.0.0 的版本有插入符号依赖,例如:

"dependencies": {"dep1": "^0.2.0"
}

npm update 会安装 dep1@0.2.0,因为没有其他版本可以满足 ^0.2.0

如果依赖于 ^0.4.0

"dependencies": {"dep1": "^0.4.0"
}

那么 npm update 会安装 dep1@0.4.1,因为那是满足 ^0.4.0>= 0.4.0 <0.5.0)的最高排序版本

 子依赖

假设你的应用现在也依赖于 dep2

{"name": "my-app","dependencies": {"dep1": "^1.0.0","dep2": "1.0.0"}
}
而 dep2 本身就依赖于 dep1 的这个有限范围
{
"name": "dep2","dependencies": {"dep1": "~1.1.1"}
}

然后 npm update 将安装 dep1@1.1.2,因为这是 dep2 允许的最高版本。 当单个版本可以满足树中多个依赖的 semver 要求时,npm 将优先在树中拥有单个版本的 dep1,而不是两个。 在这种情况下,如果你确实需要你的包来使用更新的版本,你需要使用 npm install

 更新全局安装的包

npm update -g 将对每个全局安装的 outdated 包应用 update 操作 - 也就是说,具有与 wanted 不同的版本。

注意: 全局安装的包被视为安装时指定了插入符号 semver 范围。 因此,如果你需要更新到 latest,你可能需要运行 npm install -g [<pkg>...]

注意: 如果包已升级到比 latest 更新的版本,它将被降级。

4、npm version

此命令可用来查看npm版本相关信息。

4.1 使用语法

npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease | from-git]别名: verison

5、npm view

此命令可以查看查看注册表信息。

5.1 使用语法

npm view [<package-spec>] [<field>[.subfield]...]别名: info, show, v

5.2 描述

此命令显示有关包的数据并将其打印到标准输出。

例如,要从注册表中查看有关 jquery 包的信息,你可以运行:

npm view jquery

 

如果未指定,则默认版本为 "latest"

可以在包描述符之后指定字段名称。 例如,要显示 0.3.5 版本的 ronn 包的依赖,你可以执行以下操作:

npm view ronn@0.3.5 dependencies

你可以通过用句点分隔子字段来查看子字段。 要查看最新版本 jquery的 git 存储库 URL,你将运行以下命令:

npm view jquery repository.url

 这使得使用一些 shell 脚本可以轻松查看有关依赖的信息。 例如,要查看 ronn 所依赖的 opts 版本的所有数据,可以这样写:

npm view opts@$(npm view ronn dependencies.opts)

对于数组字段,请求非数字字段将返回列表中对象的所有值。 例如,要获取 express 包的所有贡献者电子邮件地址,你可以运行:

npm view express contributors.email

你还可以在方括号中使用数字索引来专门选择数组字段中的项目。 要获取列表中第一个贡献者的电子邮件地址,你可以运行:

npm view express contributors[0].email

如果你要查询的字段值是对象的属性,你应该运行:

npm view express time'[4.8.0]'

可以指定多个字段,并且将一个接一个地打印。 例如,要获取所有贡献者名称和电子邮件地址,你可以这样做:

npm view express contributors.name contributors.email
"Person" 字段如果显示为对象,则显示为字符串。 因此,例如,这将以缩短的字符串格式显示 npm 贡献者的列表。
npm view npm contributors

如果提供了版本范围,则将为包的每个匹配版本打印数据。 这将显示每个匹配的 yui3 版本需要哪个版本的 jsdom

npm view yui3@'>0.5.4' dependencies.jsdom

要显示 connect 包版本历史,你可以这样做:

npm view connect versions

6、npm whoami

此命令用于显示 npm 用户名

6.1 使用语法

npm whoami

6.2 描述

显示当前登录用户的 npm 用户名。

如果登录到提供基于令牌的身份验证的注册表,则连接到 /-/whoami 注册表端点以查找与令牌关联的用户名,并打印到标准输出。

如果登录到使用基本身份验证的注册表,则只需打印身份验证字符串的 username 部分。

7、npx

此命令用于从本地或远程 npm 包运行命令

7.1 使用语法

npx -- <pkg>[@<version>] [args...]
npx --package=<pkg>[@<version>] -- <cmd> [args...]
npx -c '<cmd> [args...]'
npx --package=foo -c '<cmd> [args...]'

7.2 描述

此命令允许你在与通过 npm run 运行类似的上下文中从 npm 包(本地安装或远程获取)运行任意命令。

--package 选项指定的任何包都将在执行命令的 PATH 中提供,以及任何本地安装的包可执行文件。 --package 选项可以指定多次,以在所有指定包都可用的环境中执行提供的命令。

如果本地项目依赖中不存在任何请求的包,则将它们安装到 npm 缓存中的文件夹中,该文件夹在执行过程中添加到 PATH 环境变量中。 打印一个提示(可以通过提供 --yes 或 --no 来抑制)。

不带说明符的包名称将与本地项目中存在的任何版本匹配。 仅当具有与本地依赖完全相同的名称和版本时,带有说明符的包名称才会被视为匹配。

如果未提供 -c 或 --call 选项,则使用位置参数生成命令字符串。 如果未提供 --package 选项,则 npm 将尝试根据以下启发式方法从作为第一个位置参数提供的包说明符中确定可执行文件名称:

  • 如果包在 package.json 的 bin 字段中有一个条目,或者如果所有条目都是同一命令的别名,则将使用该命令。
  • 如果包有多个 bin 条目,其中一个与 name 字段的无范围部分匹配,则将使用该命令。
  • 如果这不会导致恰好一个选项(或者因为没有 bin 条目,或者它们都不匹配包的 name),那么 npm exec 会以错误退出。

要运行指定二进制文件以外的二进制文件,请指定一个或多个 --package 选项,这将阻止 npm 从第一个命令参数推断包。

7.3 npx 与 npm exec

通过 npx 二进制文件运行时,必须在任何位置参数之前设置所有标志和选项。 通过 npm exec 运行时,可以使用双连字符 -- 标志来禁止 npm 解析应发送到执行命令的开关和选项。

例如:

npx foo@latest bar --package=@npmcli/foo

在这种情况下,npm 将解析 foo 包名,并运行以下命令:

foo bar --package=@npmcli/foo

由于 --package 选项位于位置参数之后,因此它被视为已执行命令的参数。

相比之下,由于 npm 的参数解析逻辑,运行这个命令是不同的:

$ npm exec foo@latest bar --package=@npmcli/foo

在这种情况下,npm 会先解析 --package 选项,解析 @npmcli/foo 包。 然后,它将在该上下文中执行以下命令:

foo@latest bar

建议使用双连字符来明确告诉 npm 停止解析命令行选项和开关。 因此,以下命令等同于上面的 npx 命令:

npm exec -- foo@latest bar --package=@npmcli/foo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/159641.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LLMs的终局是通用人工智能AGI总结 生成式AI和大语言模型 Generative AI LLMs

终于学完了 生成式AI和大语言模型 Generative AI & LLMs. LLMs 解决了如下问题&#xff1a; 对NLP的不能够理解长句子&#xff0c;解决方案 自注意力机制Transformers architecture Attention is all you need大模型算力不够&#xff0c;解决方案 LLMs 缩放法则和计算最…

电商爬虫API快速入门指南

​电子商务爬虫API​是一个公共数据爬虫API&#xff0c;旨在通过大多数电子商务网站收集大量实时本地化数据并搜索信息。这个数据收集工具作为一个值得信赖的解决方案&#xff0c;实现通过最复杂的电子商务网站收集公共信息。电子商务爬虫API适用于商业用例&#xff0c;诸如价格…

数据结构 - 2(顺序表10000字详解)

一&#xff1a;List 1.1 什么是List 在集合框架中&#xff0c;List是一个接口&#xff0c;继承自Collection。 Collection也是一个接口&#xff0c;该接口中规范了后序容器中常用的一些方法&#xff0c;具体如下所示&#xff1a; Iterable也是一个接口&#xff0c;Iterabl…

加入鲲鹏HPC训练营,一起引领高性能计算新潮流

随着科学技术的迅猛发展&#xff0c;高性能计算&#xff08;HPC&#xff09;已经成为各行各业的核心竞争力之一。在这个数字化时代&#xff0c;高性能计算对于解决大数据分析、人工智能、模拟计算等领域的复杂问题至关重要。 所谓HPC&#xff0c;就是一个计算机集群系统&#x…

安全典型配置(三)使用ACL禁止特定用户上网案例

【微|信|公|众|号&#xff1a;厦门微思网络】 安全典型配置&#xff08;一&#xff09;使用ACL限制FTP访问权限案例_厦门微思网络的博客-CSDN博客本例中配置的本地用户登录密码方式为irreversible-cipher&#xff0c;表示对用户密码采用不可逆算法进行加密&#xff0c;非法用…

android studio检测不到真机

我的情况是&#xff1a; 以前能检测到&#xff0c;有一天我使用无线调试&#xff0c;发现调试有问题&#xff0c;想改为USB调试&#xff0c;但是半天没反应&#xff0c;我就点了手机上的撤销USB调试授权&#xff0c;然后就G了。 解决办法&#xff1a; 我这个情况比较简单&…

女性用品经营商城小程序的作用是什么

女性悦己消费增强&#xff0c;围绕女性产生的商品&#xff0c;品牌多且样式足&#xff0c;消费者可以随时购买到&#xff0c;但随着线上互联网深入人们生活&#xff0c;电商近些年发展迅速&#xff0c;传统女性用品线下经销商或品牌在实际经营中面临着痛点。 线上卖货是各商家…

【C++】:string用法详解

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关Linux的基础知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通 数…

TCP/IP(十)TCP的连接管理(七)CLOSE_WAIT和TCP保活机制

一 CLOSE_WAIT探究 CLOSE_WAIT 状态出现在被动关闭方,当收到对端FIN以后回复ACK,但是自身没有发送FIN包之前 ① 服务器出现大量 CLOSE_WAIT 状态的原因有哪些? 1、通常来讲,CLOSE_WAIT状态的持续时间应该很短,正如SYN_RCVD状态2、但是在一些特殊情况下,就会出现大量连接长…

word误删除的文件怎么恢复?恢复办法分享

在日常工作和学习中&#xff0c;我们常常会使用到Word来撰写文章、毕业论文、方案等。然而&#xff0c;我们可能会遇到Word误删文件的情况&#xff0c;令我们陷入恐慌&#xff0c;特别是这个文件很重要时。幸运的是&#xff0c;有办法找回。下面一起来看下word误删除的文件怎么…

CEC2013(MATLAB):猎豹优化算法(The Cheetah Optimizer,CO)求解CEC2013

一、猎豹优化算法CO 猎豹优化算法&#xff08;The Cheetah Optimizer&#xff0c;CO&#xff09;由MohammadAminAkbari等人于2022年提出&#xff0c;该算法性能高效&#xff0c;思路新颖。 参考文献&#xff1a; Akbari, M.A., Zare, M., Azizipanah-abarghooee, R. et al. Th…

spring boot自定义配置时在yml文件输入有提示

自定义一个配置类&#xff0c;然后在yml文件具体配置值时&#xff0c;一般不会有提示&#xff0c;这个解决这个问题 依赖 <!--自定义配置类&#xff0c;在yml文件写的时候会有提示--><dependency><groupId>org.springframework.boot</groupId><arti…

【git篇】git的使用

文章目录 1. Git介绍与安装1. Git简介2. 下载安装程序3. 设置用户名和邮箱 2. Git的基本使用1. 创建版本库2. 文件管理1. 提交文件2. 查看状态3. 查看提交日志4. 版本回退 3. 原理解析1. Git区的划分2. 撤销修改3. 删除文件 4. 分支管理1. 基本原理2. 创建分支3. 合并分支4. 删…

网页游戏的开发框架

网页游戏开发通常使用不同的开发框架和技术栈&#xff0c;以创建各种类型的游戏&#xff0c;从简单的HTML5游戏到复杂的多人在线游戏&#xff08;MMO&#xff09;等。以下是一些常见的网页游戏开发框架和它们的特点&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&a…

Android Studio SDK manager加载packages不全

打开Android Studio里的SDK manager&#xff0c;发现除了已安装的&#xff0c;其他的都不显示。 解决方法&#xff1a; 设置代理&#xff1a; 方便复制> http://mirrors.neusoft.edu.cn/ 重启Android Studio

[Spring] SpringMVC 简介(三)

目录 九、SpringMVC 中的 AJAX 请求 1、简单示例 2、RequestBody&#xff08;重点关注“赋值形式”&#xff09; 3、ResponseBody&#xff08;经常用&#xff09; 4、为什么不用手动接收 JSON 字符串、转换 JSON 字符串 5、RestController 十、文件上传与下载 1、Respo…

C/C++陷阱——临时变量的产生和特性

C/C陷阱——临时变量的产生和特性 在学习C常引用时&#xff0c;有这样一段代码引起了我的注意&#xff1a; int a 1; double& b a;当我编译这段代码时&#xff0c;竟然报错了&#xff1a; 按理来说&#xff0c;初始化引用时不能涉及权限的放大&#xff08;如用const in…

Kafka生产者使用案例

本文代码链接&#xff1a;https://download.csdn.net/download/shangjg03/88422633 1.生产者发送消息的过程 首先介绍一下 Kafka 生产者发送消息的过程&#xff1a; 1)Kafka 会将发送消息包装为 ProducerRecord 对象&#xff0c; ProducerRecord 对象包含了目标主题和要发送的…

如何正确维护实验室超声波清洗器?

实验室一直被视为一个严谨而严肃的场所&#xff0c;实验应遵循一定的步骤&#xff0c;使用的设备也经历了详细的选择&#xff0c;如实验室超声波清洗机&#xff0c;其特点远强于一般类型的清洗机。专门负责采购的实验室人员一般对优质服务的实验室超声波清洗机印象深刻&#xf…

计算机毕业设计 无人智慧超市管理系统的设计与实现 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…