NPM 常用命令(四)
目录
1、npm diff
1.1 描述
1.2 过滤文件
1.3 配置
diff
diff-name-only
diff-unified
diff-ignore-all-space
diff-no-prefix
diff-src-prefix
diff-dst-prefix
diff-text
global
tag
workspace
workspaces
include-workspace-root
2、npm dist-tag
2.1 常用命令
2.2 描述
2.3 目的
2.4 注意事项
3、npm-docs
3.1 命令
3.2 描述
1、npm diff
1.1 描述
与其对应的 git diff
类似,此命令将打印发布到 npm 注册表的包的文件差异补丁。
-
npm diff --diff=<spec-a> --diff=<spec-b>
使用注册表说明符比较两个包版本,例如:
npm diff --diff=pkg@1.0.0 --diff=pkg@^2.0.0
。 也可以比较任何包的复刻,例如:npm diff --diff=pkg@1.0.0 --diff=pkg-fork@1.0.0
。可以使用任何有效的规范,因此也可以比较目录或 git 存储库,例如:
npm diff --diff=pkg@latest --diff=./packages/pkg
这是一个比较注册表中名为
qs
的包的两个不同版本的示例npm diff --diff=./myapp/node_modules/qs --diff=./myapp1/node_modules/qs
-
npm diff
(在包目录中,无参数):如果包发布到注册表,
npm diff
将获取标记为latest
的 tarball 版本(可以使用tag
选项配置此值)并继续比较该 tarball 中存在的文件内容与本地文件中的当前文件系统。此工作流程为包作者提供了一种方便的方式,可以查看与该包的最新发布版本相比,哪些包跟踪文件已更改。
-
npm diff --diff=<pkg-name>
(在包目录中):当使用单个包名(没有版本或标签说明符)作为参数时,
npm diff
将以与 npm-outdated 类似的方式工作,并到达注册表以确定名为<pkg-name>
的包的当前发布版本将满足其依赖声明的 semver -范围。 一旦知道该特定版本,npm diff
将打印差异补丁,将在本地文件系统中找到的<pkg-name>
的当前版本与注册表返回的特定版本进行比较。给定当前安装的名为
abbrev
的包:npm diff --diff=abbrev
这将向注册表请求其最新版本,如果版本号不同,将打印一个比较当前安装的版本与新版本的差异输出。
-
npm diff --diff=<spec-a>
(在包目录中):与仅使用单个包名称类似,如果你希望将已安装包的本地版本与
<spec-a>
中提供的特定版本/标签/semver-range 进行比较,也可以声明完整的注册表说明符版本。一个例子: 假设
pkg@1.0.0
安装在当前的node_modules
文件夹中,运行:npm diff --diff=pkg@2.0.0
它实际上是
npm diff --diff=pkg@1.0.0 --diff=pkg@2.0.0
的别名。 -
npm diff --diff=<semver-a> [--diff=<semver-b>]
(在包目录中):使用
npm diff
和 semver-valid 版本号是比较当前包的不同版本的简写。它需要从一个包目录运行,这样对于一个名为
pkg
的包来说,运行npm diff --diff=1.0.0 --diff=1.0.1
与运行npm diff --diff=pkg@1.0.0 --diff=pkg@1.0.1
是一样的。如果只提供了一个参数
<version-a>
,那么当前本地文件系统将与该版本进行比较。这是一个比较当前项目目录的两个特定版本(发布到配置的注册表)的示例:
npm diff --diff=1.0.0 --diff=1.1.0
请注意,标签名称不是有效的
--diff
参数值,如果你希望与已发布的标签进行比较,则必须使用pkg@tagname
语法。
1.2 过滤文件
也可以使用文件名或 glob 模式匹配指定位置参数,以便将差异补丁的结果限制为给定包的文件子集,例如:
npm diff --diff=pkg@2 ./lib/ CHANGELOG.md
在上面的示例中,diff 输出只会打印位于文件夹 ./lib/
中的文件的内容以及 CHANGELOG.md
文件中更改的代码行。
1.3 配置
diff
- 默认值:
- 类型: 字符串(可以设置多次)
定义要在 npm diff
中比较的参数。
diff-name-only
- 默认值: false
- 类型: 布尔值
使用 npm diff
时仅打印文件名。
diff-unified
- 默认值: 3
- 类型: 数字
要在 npm diff
中打印的上下文行数。
diff-ignore-all-space
- 默认值: false
- 类型: 布尔值
比较 npm diff
中的行时忽略空格。
diff-no-prefix
- 默认值: false
- 类型: 布尔值
不要在 npm diff
输出中显示任何源或目标前缀。
注意: 这会导致 npm diff
忽略 --diff-src-prefix
和 --diff-dst-prefix
配置。
diff-src-prefix
- 默认值: "a/"
- 类型: 字符串
npm diff
输出中使用的源前缀。
diff-dst-prefix
- 默认值: "b/"
- 类型: 字符串
npm diff
输出中使用的目标前缀。
diff-text
- 默认值: false
- 类型: 布尔值
将所有文件视为 npm diff
中的文本。
global
- 默认值: false
- 类型: 布尔值
在 "global" 模式下运行,以便将包安装到 prefix
文件夹而不是当前工作目录。
- 包安装到
{prefix}/lib/node_modules
文件夹,而不是当前工作目录。 - bin 文件链接到
{prefix}/bin
- 手册页链接到
{prefix}/share/man
tag
- 默认值: "latest"
- 类型: 字符串
如果你让 npm 安装一个包并且没有告诉它一个特定的版本,那么它会安装指定的标签。
如果没有给出显式标记,则还有添加到 npm tag
命令指定的 package@version 的标记。
当被 npm diff
命令使用时,这是用于获取 tarball 的标签,默认情况下将与本地文件进行比较。
workspace
- 默认值:
- 类型: 字符串(可以设置多次)
启用在当前项目的已配置工作区的上下文中运行命令,同时通过仅运行此配置选项定义的工作区进行过滤。
workspace
配置的有效值为:
- 工作区名称
- 工作区目录的路径
- 父工作区目录的路径(将导致选择该文件夹中的所有工作区)
为 npm init
命令设置时,可以将其设置为尚不存在的工作区的文件夹,以创建文件夹并将其设置为项目中的全新工作区。
此值不会导出到子进程的环境中。
workspaces
- 默认值: null
- 类型: 空值或布尔值
设置为 true 以在 all 配置的工作区的上下文中运行命令。
显式将此设置为 false 将导致像 install
这样的命令完全忽略工作区。 未明确设置时:
- 在
node_modules
树上运行的命令(安装、更新等)会将工作区链接到node_modules
文件夹。 - 执行其他操作(测试、执行、发布等)的命令将在根项目上运行,除非在workspace
配置中指定了一个或多个工作区。
此值不会导出到子进程的环境中。
include-workspace-root
- 默认值: false
- 类型: 布尔值
为命令启用工作区时包括工作区根。
当为 false 时,通过 workspace
配置指定单个工作区,或通过 workspaces
标志指定所有工作区,将导致 npm 仅在指定的工作区上运行,而不是在根项目上运行。
2、npm dist-tag
2.1 常用命令
npm dist-tag add <package-spec (with version)> [<tag>]
npm dist-tag rm <package-spec> <tag>
npm dist-tag ls [<package-spec>]别名: dist-tags
2.2 描述
在包上添加、删除和枚举分发标签:
-
add: 使用指定的标记标记指定版本的包,如果没有指定,则标记为 --tag 配置。 如果你在 auth-and-writes 上有双重身份验证,那么你需要在命令行中使用
--otp <one-time password>
包含一次性密码,或者通过基于你的authtype
的第二重流程。 -
rm: 清除封装中不再使用的标签。 如果你在 auth-and-writes 上有双重身份验证,那么你需要在命令行中使用
--otp <one-time password>
包含一次性密码,或者通过基于你的authtype
的第二重流程 -
ls: 显示包的所有 dist-tags,默认为当前前缀中的包。 如果未指定,则这是默认操作。
安装包时可以使用标记作为对版本的引用,而不是使用特定的版本号:
npm install <name>@<tag>
例如:安装 qs 的tag 为latest
npm install qs@latest
打开安装包,可以看一下tag对应的版本号:
安装依赖时,可以指定首选标记版本:
npm install --tag <tag>
(这也适用于解析和安装依赖的任何其他命令,例如 npm dedupe
、npm update
和 npm audit fix
。)
除非使用 --tag
选项,否则发布包会将 latest
标记设置为已发布版本。 例如,npm publish --tag=beta
。
默认情况下,npm install <pkg>
(没有任何 @<version>
或 @<tag>
说明符)安装 latest
标签。
2.3 目的
标签可用于提供别名而不是版本号。
例如,一个项目可能选择有多个开发流并为每个流使用不同的标签,例如,stable
、beta
、dev
、canary
。
默认情况下,npm 使用 latest
标签来标识包的当前版本,而 npm install <pkg>
(没有任何 @<version>
或 @<tag>
说明符)安装 latest
标签。 通常,项目只使用 latest
标签表示稳定版本,而使用其他标签表示不稳定版本,例如 prereleases。
一些项目使用 next
标签来标识即将发布的版本。
除了 latest
,没有任何标签对 npm 本身有任何特殊意义。
2.4 注意事项
该命令以前称为 npm tag
,它只创建新标签,因此具有不同的语法。
标签必须与版本号共享一个命名空间,因为它们是在同一个插槽中指定的: npm install <pkg>@<version>
对 npm install <pkg>@<tag>
。
可以解释为有效 semver 范围的标签将被拒绝。 例如,v1.4
不能用作标签,因为它被 semver 解释为 >=1.4.0 <1.5.0
。 见 npm -g i npm@v1.4 installs from v1.4-next · Issue #6082 · npm/npm · GitHub。
避免标签出现语义问题的最简单方法是使用不以数字或字母 v
开头的标签。
3、npm-docs
3.1 命令
npm docs [<pkgname> [<pkgname> ...]]别名: home
3.2 描述
此命令尝试猜测包文档 URL 的可能位置,然后尝试使用 --browser 配置 参数打开它。 你可以一次传递多个包名称。 如果没有提供包名,它将在当前文件夹中搜索 package.json
并使用 name
属性。
如果package.json中有指定URL,浏览器会自动对应的URL,如果没有提供则直接打开npm注册表中包的页面。
例如:运行 npm docs qs
未指定URL,例如:npm docs jiang-isarray:
相关文章:

NPM 常用命令(四)
目录 1、npm diff 1.1 描述 1.2 过滤文件 1.3 配置 diff diff-name-only diff-unified diff-ignore-all-space diff-no-prefix diff-src-prefix diff-dst-prefix diff-text global tag workspace workspaces include-workspace-root 2、npm dist-tag 2.1 常…...

Anaconda虚拟环境下导入opencv
文章目录 解决方法测试 解决方法 1、根据自己虚拟环境对于的python版本与电脑对应的位长选择具体的版本,例如python3.9选择cp39,64位电脑选择64 下载地址:资源地址 若是不确定自己虚拟环境对应的python版本,可以输入下列命令&…...

Linux设备驱动程序
一、设备驱动程序简介 图1.1 内核功能的划分 可装载模块 Linux有一个很好的特性:内核提供的特性可在运行时进行扩展。这意味着当系统启动 并运行时,我们可以向内核添加功能( 当然也可以移除功能)。 可在运行时添加到内核中的代码被称为“模块”。Linux内核支持好几…...

mybatis <if>标签判断“0“不生效
原if标签写法 <if test"type 0"><!--内部逻辑--> </if> 这种情况不生效,原因是mybatis是用OGNL表达式来解析的,在OGNL的表达式中,0’会被解析成字符(而我传入的type却是string),java是强类型的,cha…...

企业数据的存储形式与方案选择
企业数据的存储形式 DAS(直接附加存储):企业初期银行规模不大,企业的数据存储需求也比较简单,因此对企业数据存储的要求就是安全保存并可以随时调用。而DAS的之间连接可以解决单台服务器的存储空间扩展,高…...

图像处理简介
目录 基本术语 1 .图像(image) 1.1 像素(Pixel) 1.2 颜色深度(Color Depth) 1.3 分辨率(Resolution) 1.4 像素宽高比(Pixel Aspect Ratio) 1.5 帧率(FPS) 1.6 码率(BR) 1. …...

adb server version (19045) doesn‘t match this client (41); killing.的解决办法
我是因为安装了360手机助手,导致adb版本冲突。卸载之后问题解决 根据这个思路,如果产生"adb server version (19045) doesn’t match this client (41); killing."的错误,检查一下是否有多个版本的adb服务。...

实验室的服务器和本地pycharm怎么做图传
提前说一个 自认为 比较重要的一点: 容器中安装opencv,可以先试试用 apt install libopencv-dev python3-opencv 我感觉在图传的时候用的不是 opencv-python 而是ubuntu的opencv库 所以用 apt install 安装试一下 参考 远程调试 qt.qpa.xcb: coul…...

Vue + Element UI 前端篇(五):国际化实现
Vue Element UI 实现权限管理系统 前端篇(五):国际化实现 国际化支持 1.安装依赖 执行以下命令,安装 i18n 依赖。 yarn add vue-i18n $ yarn add vue-i18n yarn add v1.9.4 warning package-lock.json found. Your project …...

[ROS]虚拟机ubuntu18.04系统里面运行usb_cam
首先安装usb_cam sudo apt-get install ros-melodic-usb-cam 运行: roscore roslaunch usb_cam usb_cam-test.launch 如果一运行报错,首先确认是否存在/dev/video0 可以使用ls /dev/video*查看,如果没有就是没有连接摄像头,…...

常用通讯协议比较
dubbo与http1.0的区别 二进制协议:Dubbo使用自定义的二进制协议,而HTTP 1.0使用文本,发送一条相同的消息,http1.0会有更大的网络开销。 连接复用:Dubbo采用单一的多路复用NIO长链接,每个请求都有一个对应的…...

鼠标键盘管理 ShareMouse for Mac最新
软件“ShareMouse”允许您通过单个鼠标和键盘控制多台计算机: 将鼠标移动到您想要控制的计算机的监视器上,指针会神奇地跳转到该计算机。任何鼠标和键盘输入都会传输到相应的计算机。 与网络KVM类似,ShareMouse通过本地LAN传输鼠标移动和点…...

【ALM工具软件】上海道宁与Perforce为您带来用于整个生命周期的应用程序生命周期管理软件
Helix ALM是 用于整个生命周期的 应用程序生命周期管理的ALM软件 具有专用于 需求管理(Helix RM)、测试用例管理(Helix TCM) 问题管理(Helix IM)的功能模块 Helix ALM提供了 无与伦比的可追溯性 您将…...

Android图形-架构2
目录 引言 组件概述 底层组件: 上层组件: 引言 Android图形架构主要涉及些什么呢? 1)Android 系统级图形架构的基本元素? 2)应用框架和多媒体系统如何使用这些元素? 3)图形数据…...

文字验证码:简单有效的账号安全守卫!
前言 文字验证码不仅是一种简单易懂的验证方式,同时也是保护您的账号安全的重要工具。通过输入正确的文字组合,您可以有效地确认自己的身份,确保只有真正的用户才能访问您的账号。 HTML代码 <script src"https://cdn6.kgcaptcha.…...

Shell 运算符及语法结构
目录 一、Shell运算符 1.1 表达式expr 1.2 运算操作 1.3 操作实例 二、Shell条件判断 2.1 基本语法 2.2 值、权限、类型、多条件判断 三、Shell流程控制 3.1 if 流程语法 3.2 case 流程语法 3.3 for 流程语法 3.4 内部运算符 3.5 while循环流程语法 四、Shell读…...

为什么要建前缀索引?
分析&回答 有一种与索引选择性有关的索引优化策略叫做前缀索引,就是用列的前缀代替整个列作为索引key,当前缀长度合适时,可以做到既使得前缀索引的选择性接近全列索引,同时因为索引key变短而减少了索引文件的大小和维护开销。…...

vite介绍
vite vite是一种新的前端构建工具,vite借助了浏览器对ESM的支持,采用和传统webpack打包完全不一致的unbundle打包机制; vite的快主要体现在两个方面,快速的冷启动和快速的热更新 快速的冷启动:vite只需启动一台静态页…...

2023年软件测试常见面试题
测试花费的成本,要深入在那个环节上,(前提准备上,需求理解上,业务逻辑,排错上,业务名词上理解,通过什么样的方法,有谁能解决这样的问题) 软性热身题 1.自我…...

关于const指针的一个常见误区
关于const,我曾因为其在C和C中的不同,还有一些编译器对未定义的处理不同,搞得晕头转向… 后来有次在阅读《C primer plus》中我终于梳理了有关const的结论。 1.const基础知识 首先要明白const的难点在于修饰指针的时候,对于con…...

@alilclowcode-engine-ext@1.0.5 不支持安装react@^16.3.0
alilclowcode-engine-ext1.0.5 不支持安装react^16.3.0 https://github.com/alibaba/lowcode-demo https://lowcode-engine.cn/site/docs/demoUsage/intro https://github.com/alibaba/lowcode-engine https://docs.appsmith.com/getting-started/setup/installation-guides?…...

Python之列表操作和内存模型
Python之列表操作和内存模型 列表list 一个排列整齐的队伍,Python采用顺序表实现 列表内的个体称作元素,由若干元素组成 列表 元素可以是任意对象(数字、字符串、对象、列表等) 列表内元素有顺序,可以使用索引 线性的数据结构 使用 [ ] …...

实习面试记录
湖南某操作系统中厂(9月) 首先是科研项目相关的问题,然后是其他问题如下: STL中,vector,map和unorded_map底层是怎么实现的? 在C标准库中,vector和map都是基于模板类实现的容器。 vector底层…...

总结/笔记-vue中的插槽(默认插槽、具名插槽、作用域插槽)
问题: 遇到了一个插槽,写法为 #default ”{ row }“ 插槽知识点: 定义 插槽,用于 在组件中 引用外部组件或自定义组件的内容。 即 子组件中提供给父组件使用的一个占位符,父组件可以在这个占位符中填充任何模板代…...

QTday5(QT连接TCP通信)
一、Xmind整理: C语言中的通信协议: 二、上课笔记整理: 1.QT中的服务器端的操作: .pro文件: 头文件: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer> //服务…...

【Docker】安装RabbitMQ
1、拉取 RabbitMQ 镜像 docker pull rabbitmq2.创建并运行容器 docker run -it --name test-rabbitmq -e RABBITMQ_DEFAULT_USERadmin -e RABBITMQ_DEFAULT_PASSuispig -p 15672:15672 -p 5672:5672 -d rabbitmq参数说明–name是 容器别名-d表示后台运行-p将 宿主机 5672端口…...

【如何获取数据库表的字段并拼接】
获取数据库表的字段并拼接 需求场景操作步骤获取该数据库对应表中所有的字段对获取到的字段进行处理 需求场景 在写sql语句时,我要获取到该表的大部门字段来做处理,一个个粘贴复制太费事了,所以我决定执行sql语句把表中字段查询出来 操作步…...

Oracle中LEFT JOIN后AND与WHERE的异同
1、AND 过滤之后再连接 2、WHERE 连接之后再过滤 下面以具体例子来说明: (1)、建表及插入测试数据 --建测试表 create table FACT_TAB ( ID INTEGER,STATUS VARCHAR2(8) ); create table DIM_STATUS ( STSTUS_CLASS VARCHAR2(8),STATUS_CODE VARCHAR2(8),S…...

Flink实时计算中台Kubernates功能改造点
背景 平台为数据开发人员提供基本的实时作业的管理功能,其中包括jar、sql等作业的在线开发;因此中台需要提供一个统一的SDK支持平台能够实现flink jar作业的发布;绝大多数情况下企业可能会考虑Flink On Yarn的这个发布模式,但是伴随云原生的呼声越来越大,一些企业不希望部…...

GO远程构建并调试
GO远程调试 之前写C,一直习惯了本地IDERemote CMake/GDB编译调试的模式。 因为6.824课程需要用GO,好像没有特别好的支持。记录一下如何配置调试的。 IDE: Goland 操作系统:Windows 远程服务器:Ubuntu 首先配置SSH,让其可以连接到…...