当前位置: 首页 > news >正文

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

相关文章:

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 使用语…...

数据在内存中的存储(2)

文章目录 3. 浮点型在内存中的存储3.1 一个例子3.2 浮点数存储规则 3. 浮点型在内存中的存储 常见的浮点数&#xff1a; 3.14159 1E10 ------ 1.0 * 10^10 浮点数家族包括&#xff1a; float、double、long double 类型 浮点数表示的范围&#xff1a;float.h中定义 3.1 一个例…...

软件工程与计算总结(十三)详细设计中的模块化与信息隐藏

一.模块化与信息隐藏思想 1.设计质量 好的设计要着重满足以下3方面&#xff1a;可管理性、灵活性、可理解性好的设计需要侧重于间接性和可观察性——简洁性使得系统模块易于管理&#xff08;理解和分解&#xff09;、开发&#xff08;修改与调试&#xff09;和复用。实践者都…...

RF学习——器件的非线性失真分析

在大信号激励下的射频系统 在电路中,如果激励信号的幅度不可忽视,那么就会产生非线性失真。如二极管,晶体管等电路元件的特性在大信号激励下回变得非线性,输入和输出的形状不同,产生失真。 在功率放大器PA中,随着传输给负载的功率增大而迅速增大,传递功率的规格要始终考…...

SUB-1G SOC芯片DP4306F 32 位 ARM Cortex-M0+内核替代CMT2380F32

DP4306F是一款高性能低功耗的单片集成收发机&#xff0c;集成MO核MCU&#xff0c;工作频率可覆盖200MHiz^ 1000MHz。 支持230/408/433/470/868/915频段。该芯片集成了射频接收器、射频发射器、频率综合器、GFSK调制器、GFSK解调器等功能模块。通过SPI接口可以对输出功率、频道选…...

接收请求地址下载并输出文件流实现

代码: import httpxfrom datetime import datetime from io import BytesIO from fastapi.responses import StreamingResponse@router.get("/download", tags=["下载"]) async...

【iOS】——用单例类封装网络请求

文章目录 一、JSONModel1.JSONModel的简单介绍2.JSONModel的使用 二、单例类和Block传值 一、JSONModel 1.JSONModel的简单介绍 JSONModel一个第三方库&#xff0c;这个库用来将网络请求到的JSON格式的数据转化成Foundation框架下的Model类的属性&#xff0c;这样我们就可以直…...

再学Blazor——概述

简介 Blazor 是一种 .NET 前端 Web 框架&#xff0c;同时支持服务器端呈现和客户端交互性。 使用 C# 语言创建丰富的交互式 UI共享前后端应用逻辑可以生成混合桌面和移动应用受益于 .NET 的性能、可靠性和安全性需要有 HTML、CSS、JS 相关基础&#xff08;开发 UI 框架的话&a…...

Ceph运维笔记

Ceph运维笔记 一、基本操作 ceph osd tree //查看所有osd情况 其中里面的weight就是CRUSH算法要使用的weight&#xff0c;越大代表之后PG选择该osd的概率就越大 ceph -s //查看整体ceph情况 health_ok才是正常的 ceph osd out osd.1 //将osd.1踢出集群 ceph osd i…...

RTSP协议

1 前言 RTSP协议作为音视频实时监控一个非常重要的协议&#xff0c;具有非常广泛的应用。RTSP由RFC 2326规范化&#xff0c;它允许客户端通过请求不同的媒体资源来控制流媒体服务器。RTSP是一种应用层协议&#xff0c;通常基于TCP连接&#xff0c;用于建立和控制媒体会话。这使…...

Maven系列第6篇:生命周期和插件详解?

maven系列目标&#xff1a;从入门开始开始掌握一个高级开发所需要的maven技能。 这是maven系列第6篇。 整个maven系列的内容前后是有依赖的&#xff0c;如果之前没有接触过maven&#xff0c;建议从第一篇看起&#xff0c;本文尾部有maven完整系列的连接。 前面我们使用maven…...

【通义千问】大模型Qwen GitHub开源工程学习笔记(4)-- 模型的量化与离线部署

摘要: 量化方案基于AutoGPTQ,提供了Int4量化模型,其中包括Qwen-7B-Chat和Qwen-14B-Chat。更新承诺在模型评估效果几乎没有损失的情况下,降低存储要求并提高推理速度。量化是指将模型权重和激活的精度降低以节省存储空间并提高推理速度的过程。AutoGPTQ是一种专有量化工具。…...

2022最新版-李宏毅机器学习深度学习课程-P23 为什么用了验证集结果还是过拟合

用了验证集还有可能会过拟合 这个片段可以从理论上证明这一点 以上整个挑选模型的过程也可以想象为一种训练。 把三个模型导出的最小损失公式看成一个集合&#xff0c;现在要做的就是在这个集合中找到某个h&#xff08;此处可以视为训练&#xff09;&#xff0c;使得在验证集…...

Spring Cloud Alibaba—Sentinel 控制台安装

1、Sentinel 控制台包含如下功能: 查看机器列表以及健康情况&#xff1a;收集 Sentinel 客户端发送的心跳包&#xff0c;用于判断机器是否在线。 监控 (单机和集群聚合)&#xff1a;通过 Sentinel 客户端暴露的监控 API&#xff0c;定期拉取并且聚合应用监控信息&#xff0c;最…...

基于动物迁徙优化的BP神经网络(分类应用) - 附代码

基于动物迁徙优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于动物迁徙优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.动物迁徙优化BP神经网络3.1 BP神经网络参数设置3.2 动物迁徙算法应用 4.测试结果…...

一键搞定!黑群晖虚拟机+内网穿透实现校园公网访问攻略!

文章目录 前言本教程解决的问题是&#xff1a;按照本教程方法操作后&#xff0c;达到的效果是前排提醒&#xff1a; 1. 搭建群晖虚拟机1.1 下载黑群晖文件vmvare虚拟机安装包1.2 安装VMware虚拟机&#xff1a;1.3 解压黑群晖虚拟机文件1.4 虚拟机初始化1.5 没有搜索到黑群晖的解…...

【C语言】——通讯录(静态-动态增长-文件储存)

目录 前言&#xff1a; 一&#xff1a;整体框架 关于通讯录结构体的创建 二&#xff1a;通讯录的功能实现&#xff08;静态&#xff09; 2.1初始化通讯录 2.2增加联系人 2.3打印通讯录 2.4删除联系人 2.5 查找联系人 2.6修改联系人 2.7排序联系人 三&#xff1a;通…...

win10安装nginx及简单使用(命令)

下载 下载地址&#xff1a;http://nginx.org/en/download.html 使用 解压 更改配置 conf目录下nginx.conf 修改为未被占用的端口&#xff0c;地址改成你的地址 server {# 监听端口 listen 9010;# 地址 server_name 127.0.0.1;# 静态资源location / {root html;i…...

【农业生产系统模型】基于R语言APSIM模型进阶应用与参数优化、批量模拟实践技术

随着数字农业和智慧农业的发展&#xff0c;基于过程的农业生产系统模型在模拟作物对气候变化的响应与适应、农田管理优化、作物品种和株型筛选、农田固碳和温室气体排放等领域扮演着越来越重要的作用。APSIM (Agricultural Production Systems sIMulator)模型是世界知名的作物生…...

金融数学方法:梯度下降法

1.算法介绍 梯度下降法是一种常用的优化算法&#xff0c;其通过沿着梯度下降的方向迭代寻找局部极小值。如果沿着梯度上升的方向迭代&#xff0c;就可以找到极大值。 在梯度下降法中&#xff0c;我们首先需要选择一个初始点 x 0 x_0 x0​作为起始位置&#xff0c;然后计算当前位…...

1031 查验身份证

一.问题&#xff1a; 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下&#xff1a; 首先对前17位数字加权求和&#xff0c;权重分配为&#xff1a;{7&#xff0c;9&#xff0c;10&#xff0c;5&#xff0c;8&#xff0c;4&#xf…...

如何共享 Android 不同模块的构建配置

最近想重新梳理学习一遍 Android 的各个知识点&#xff0c;于是新建了一个 AndroidStudy 项目仓库&#xff0c;打算每个知识块新建 1 个 module。 类似这样&#xff1a; AndroidStudy (Root Project) ├─app (Module0) ├─CustomView (Module1) ├─KotlinCoroutines (Modul…...

atlas运维中遇到的问题

1、java.lang.NoClassDefFoundError&#xff1a;javax/ws/rs/core/Link$Builder 主要原因&#xff1a;jsr311-api包中javax.ws.rs.core包中没有Link类&#xff0c;而Atlas以HBase作为元数据存储&#xff0c;HBase本身使用的为javax.ws.rs-api包中的core包&#xff0c;其中有Lin…...

06-React的路由

06-React的路由 1.相关理解 1).SPA的理解 单页Web应用&#xff08;single page web application&#xff0c;SPA&#xff09;。整个应用只有一个完整的页面。点击页面中的链接不会刷新页面&#xff0c;只会做页面的局部更新。数据都需要通过ajax请求获取, 并在前端异步展现。…...

虹科方案 | 加州理工学院利用HK-TrueNAS开展地震研究

一、客户背景 加州理工学院(CalTech)是世界顶尖的理工类科学研究型学府之一。加州理工学院地震实验室是加州理工学院地质与行星科学部(GPS)的一个分支机构&#xff0c;成立于1921年&#xff0c;自20年代以来一直是世界地震学研究中心&#xff0c;并且几十年来一直是媒体对大地…...

宝塔面板部署express以及MySql项目

第一次在宝塔面板上部署express和MySql项目&#xff0c;部署过程一直跑不通接口&#xff0c;特此记录一下。 在部署的时候&#xff0c;建议第一步把数据库MySql给跑通&#xff0c;中间好多原因是由于数据库的原因给引起的。 一.连接数据库 &#xff08;1&#xff09;在宝塔面…...

联盟链学习笔记-网络的创建

联盟链学习笔记 初始网络 下图是初始网络网络N的参考图 排序服务 在定义 网络 N 的时候&#xff0c;第一件事情就是定义一个 排序服务O4。O4 最初被配置并且由组织 R4 的一个管理员来启动&#xff0c;并且由 R4 管理。配置 NC4 包含了描述网络管理能力初始集合的规则。最初在…...

System.Drawing.Common.Bitmap跨平台的替代方案

使用SkiaSharp SkiaSharp是Skia Graphics Library的.Net跨平台实现&#xff0c;它可以在Windows&#xff0c;macOS&#xff0c;Linux&#xff0c;iOS&#xff0c;Android和其他平台上使用。 例如需要Linux版&#xff0c;则安装第一个和第四个&#xff1a; 以下是使用SkiaShar…...

深入理解 Java 泛型

没有泛型是怎样的 了解点 Java 历史的都知道,泛型是从 JDK 1.5 版本添加的特性,在 JDK1.5 之前,Java 很多特性都是没有的例如:泛型、注解、自动装箱和拆箱、可变参数。在介绍泛型之前,我们先来看看,如果没有泛型的世界是怎么样的。 假设有一个 List,我只想把 String 类…...

【基础篇】七、Flink核心概念

文章目录 1、并行度2、并行度的设置3、算子链4、禁用算子链5、任务槽6、任务槽和并行度的关系 1、并行度 要处理的数据量很多时&#xff0c;可以把一个算子的操作&#xff08;比如前面demo里的flatMap、sum&#xff09;&#xff0c;"复制"多份到多个节点&#xff0c…...

网站策划书怎么写/网址ip地址查询工具

如何能够获得Extjs.grid.panel总的Columns的列数 举报| 分享| 2015-01-01 13:56linjian001 |浏览 485 次编程语言Javascript网页设计通过什么方法能够获取这个数据 var grid Ext.create(Ext.grid.GridPanel,{}); var columns grid.columns; var Length columns.length 2015-…...

深圳网站建设怎样容易/网络营销软文范例500字

这次需要记录一下我搭建web服务器的过程。 第一步&#xff0c;确定自己要使用的平台&#xff1a;这次我用的是windows2008 server版本 第二步&#xff0c;计划是想要纯手工的安装apache、php等。但是我们可以下载一个wamp集成版&#xff08;即windows系统下apache、mysql 、php…...

廉洁四川官方网权威发布/汕头seo推广外包

本文为美国罗切斯特理工学院&#xff08;作者&#xff1a;Sandeep Aswath Narayana&#xff09;的硕士论文&#xff0c;共56页。 硅工艺技术的不断改进使得在单个芯片上集成数百个核成为可能。然而&#xff0c;功耗和散热已经成为设计这些大规模多核芯片的主要限制&#xff0c…...

程序员做的网站别人用于诈骗/怎么查看域名是一级还是二级域名

这段时间在做Unity的项目&#xff0c;这差不多是我的第一次实战啊~然后公司来了实习的童鞋要学Unity&#xff0c;但是我一向不靠谱啊&#xff0c;所以只能帮他们稍微梳理下基础的东西了啊&#xff0c;唉~学长只能帮你们到这里了~顺便就把自己这两天整理的一些基础知识分享上来了…...

网站开发大学是什么专业/二级域名查询网站

经典 O(nlogn) 复杂度算法之快排关注「码哥字节」并设置星标接收最新技术干货&#xff0c;后台回复「加群」获取更多成长快速排序是由东尼霍尔所发展的一种排序算法。在平均状况下&#xff0c;排序 n 个项目要 Ο(nlogn) 次比较。在最坏状况下则需要 Ο(n2) 次比较&#xff0c;…...

wordpress编辑器不能复制/重庆seo推广

一、mac 下redis安装1、brew安装redisbrew install redis2、启动redis服务器brew services start redis或者redis-server /usr/local/etc/redis.conf二、python操作redis1、连接方式redis-py提供两个类Redis和StrictRedis用于实现Redis的命令&#xff0c;StrictRedis用于实现大…...