NPM 常用命令(十二)

news2024/11/26 12:16:49

目录

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.coloradmin.cn/o/1090207.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【yolov5】改进系列——特征图可视化(V7.0 的一个小bug)

文章目录 前言一、特征图可视化1.1 V7.0的小bug 二、可视化指定层三、合并通道可视化总结 前言 对于特征图可视化感兴趣可以参考我的另一篇记录&#xff1a;六行代码实现&#xff1a;特征图提取与特征图可视化&#xff0c;可以实现分类网络的特征图可视化 最近忙论文&#xf…

BAT023:将当前目录同名文件(不包括扩展名)整理到以其命名的文件夹内

引言&#xff1a;编写批处理程序&#xff0c;实现将当前目录同名文件&#xff08;不包括扩展名&#xff09;整理到以其命名的文件夹内。 一、新建Windows批处理文件 参考博客&#xff1a; CSDNhttps://mp.csdn.net/mp_blog/creation/editor/132137544 二、写入批处理代码 1.…

(echarts)热度图封装相关总结及使用

(echarts)热度图封装相关总结及使用 一、封装组件heatChart.vue <template><div :id"id" :class"className" :style"{ height: height, width: width }" /> </template><script> import echarts from "echarts&quo…

GraphQL 查询:一个全面指南

GraphQL GraphQL 是一种 API 查询语言和运行时&#xff0c;用于使用现有数据完成这些查询。它为您的 API 中的数据提供了完整且易于理解的描述&#xff0c;让客户能够准确地询问他们需要什么&#xff0c;更容易随着时间的推移发展 API&#xff0c;并启用强大的开发人员工具。 …

047:mapboxGL本地上传shp文件,在map上解析显示图形

第047个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中本地上传shp文件,利用shapefile读取shp数据,并在地图上显示图形。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共117行)加载shapefile.js方式…

【面试经典150 | 哈希表】存在重复元素 II

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;哈希表方法二&#xff1a;滑动窗口 其他语言python3哈希表python3滑动窗口 写在最后 Tag 【哈希表】【滑动窗口】【数组】 题目来源 219. 存在重复元素 II 题目解读 判断在数组中有没有相同的元素小于一定的距离。 解…

软件开源快速开发框架:降本增效,助力流程化办公!

随着时代的进步和社会的发展&#xff0c;应用软件开源快速开发框架的优势特点&#xff0c;可以让不少客户朋友顺利实现流程化办公&#xff0c;朝着数字化方向迈进。流辰信息是专业研发低代码技术平台的服务商&#xff0c;一直在低代码平台领域深耕细作&#xff0c;努力钻研&…

微服务12-分布式服务理论基础+Seata的认识

文章目录 分布式服务理论基础前言微服务和分布式的区别CAP定理BASE理论 Seata流程&#xff1a;seata部署微服务集成seata 分布式服务理论基础 前言 单体架构&#xff1a; 1.项目过于臃肿&#xff0c;所有服务在一起&#xff0c;一个业务挂了&#xff0c;整个项目就不能用了&…

win redis 配置自启动服务

配置自启动 redis-server --service-install redis.windows-service.conf --loglevel verbose redis.windows-service.conf 配置 Logs 文件夹

nodejs+vue电子病历管理系统

过软件的需求分析已经获得了系统的基本功能需求&#xff0c;根据需求&#xff0c;将电子病历管理系统功能模块主要分为管理员模块。管理员添加科室信息管理、项目分类管理、药品分类管理、公告信息管理、用户管理等操作。 本系统结合计算机系统的结构、概念、模型、原理、方法&…

Go语言介绍与安装

介绍与安装 本教程介绍了 Go&#xff0c;并讨论了选择 Go 相对于其他编程语言的优势。我们还将学习如何在Windows 中安装 Go。 介绍 Go也称为Golang&#xff0c;是由 Google 开发的一种开源、编译型、静态类型的编程语言。 Go创造背后的关键人物是Rob Pike、 Ken Thompson和…

Apache Dubbo 首个 Node.js 3.0-alpha 版本正式发布

作者&#xff1a;蔡建怿 关于Apache Dubbo3 Apache Dubbo 是一款易用、高性能的 WEB 和 RPC 框架&#xff0c;同时为构建企业级微服务提供服务发现、流量治理、可观测、认证鉴权等能力、工具与最佳实践。经过近几年发展&#xff0c;Dubbo3 已在阿里巴巴集团各条业务线实现全面…

【Arduino+ESP32+腾讯云+sg90】强制门户+腾讯云控制开关灯

作者有话说 博主对于Arduino开发并没有基础&#xff0c;但是为了实现更加方便的配网&#xff0c;这几天一直在尝试用ESP32-12F&#xff08;因为手头刚好有一个&#xff0c;其他的也可以&#xff09;来做远程开关灯&#xff01;不知道大家是否注意到&#xff0c;上一篇利用STM32…

【Vivado HLS Bug】Ubuntu环境下Vivado HLS导出IP报错:HLS ERROR: [IMPL 213-28]

Export IP Invalid Argument / Revision Number Overflow Issue (Y2K22) (xilinx.com)一.问题描述&#xff1a; 在Ubuntu20.04环境中使用Vivado HLS导出IP时报错&#xff1a;HLS ERROR: [IMPL 213-28] 二.解决方法&#xff1a; 1.从如下链接中下载官方补丁Export IP Invalid…

Go函数介绍与一等公民

Go函数介绍与一等公民 函数对应的英文单词是 Function&#xff0c;Function 这个单词原本是功能、职责的意思。编程语言使用 Function 这个单词&#xff0c;表示将一个大问题分解后而形成的、若干具有特定功能或职责的小任务&#xff0c;可以说十分贴切。函数代表的小任务可以…

Stable Diffusion 动画SD-Animatediff V2

AI不仅可以生成令人惊叹的图片,还能给这些图片注入生命,让它们动起来。 这就是AnimateDiff要做的事情,一个神奇的工具,能将静态的AI生成图像转换成动画。 本次介绍基于SD如何实现这个神奇的方法。 文章目录 插件安装使用方法参数调整文生动图/视频Controlnet方法SD API方…

ARMv5架构对齐访问异常问题

strh非对齐访问 在ARMv5架构中&#xff0c;对于strh指令&#xff08;Store Halfword&#xff09;&#xff0c;通常是要求对地址进行对齐访问的。ARMv5架构对于半字&#xff08;Halfword&#xff09;的存储操作有对齐要求&#xff0c;即地址必须是2的倍数。 如果尝试使用strh指…

【广州华锐互动】塔吊多人安拆VR互动培训系统

塔吊多人安拆VR互动培训系统由广州华锐互动制作&#xff0c;是一种基于VR技术的模拟实训系统&#xff0c;专门用于培训塔吊驾驶员和操作员。 在现实生活中&#xff0c;塔吊操作具有一定的危险性&#xff0c;尤其是在培训过程中容易发生意外。而使用VR互动实训系统&#xff0c;学…

OCP Java17 SE Developers 复习题05

答案 答案 A, E. Instance and static variables can be marked final, making option A correct. Effectively final means a local variable is not marked final but whose value does not change after it is set, making option B incorrect. Option C is incorrect, a…

JAVA基础(JAVA SE)学习笔记(一)JAVA学习路线、行业了解、开发环境JDK17安装配置

前言 1. 学习视频&#xff1a; 尚硅谷Java零基础全套视频教程(宋红康2023版&#xff0c;java入门自学必备)_哔哩哔哩_bilibili 2023最新Java学习路线 - 哔哩哔哩 2. 一步一个脚印&#xff0c;踏踏实实再学一遍&#xff01; 这个世界上有的人输在不能开始&#xff0c;有的人…