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…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...
保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...
