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

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 dedupenpm update 和 npm audit fix。)

除非使用 --tag 选项,否则发布包会将 latest 标记设置为已发布版本。 例如,npm publish --tag=beta

默认情况下,npm install <pkg>(没有任何 @<version> 或 @<tag> 说明符)安装 latest 标签。

2.3 目的

标签可用于提供别名而不是版本号。

例如,一个项目可能选择有多个开发流并为每个流使用不同的标签,例如,stablebetadevcanary

默认情况下,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版本与电脑对应的位长选择具体的版本&#xff0c;例如python3.9选择cp39&#xff0c;64位电脑选择64 下载地址&#xff1a;资源地址 若是不确定自己虚拟环境对应的python版本&#xff0c;可以输入下列命令&…...

Linux设备驱动程序

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

mybatis <if>标签判断“0“不生效

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

企业数据的存储形式与方案选择

企业数据的存储形式 DAS&#xff08;直接附加存储&#xff09;&#xff1a;企业初期银行规模不大&#xff0c;企业的数据存储需求也比较简单&#xff0c;因此对企业数据存储的要求就是安全保存并可以随时调用。而DAS的之间连接可以解决单台服务器的存储空间扩展&#xff0c;高…...

图像处理简介

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

adb server version (19045) doesn‘t match this client (41); killing.的解决办法

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

实验室的服务器和本地pycharm怎么做图传

提前说一个 自认为 比较重要的一点&#xff1a; 容器中安装opencv&#xff0c;可以先试试用 apt install libopencv-dev python3-opencv 我感觉在图传的时候用的不是 opencv-python 而是ubuntu的opencv库 所以用 apt install 安装试一下 参考 远程调试 qt.qpa.xcb: coul…...

Vue + Element UI 前端篇(五):国际化实现

Vue Element UI 实现权限管理系统 前端篇&#xff08;五&#xff09;&#xff1a;国际化实现 国际化支持 1.安装依赖 执行以下命令&#xff0c;安装 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 运行&#xff1a; roscore roslaunch usb_cam usb_cam-test.launch 如果一运行报错&#xff0c;首先确认是否存在/dev/video0 可以使用ls /dev/video*查看&#xff0c;如果没有就是没有连接摄像头&#xff0c;…...

常用通讯协议比较

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

鼠标键盘管理 ShareMouse for Mac最新

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

【ALM工具软件】上海道宁与Perforce为您带来用于整个生命周期的应用程序生命周期管理软件

Helix ALM是 用于整个生命周期的 应用程序生命周期管理的ALM软件 具有专用于 需求管理&#xff08;Helix RM&#xff09;、测试用例管理&#xff08;Helix TCM&#xff09; 问题管理&#xff08;Helix IM&#xff09;的功能模块 Helix ALM提供了 无与伦比的可追溯性 您将…...

Android图形-架构2

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

文字验证码:简单有效的账号安全守卫!

前言 文字验证码不仅是一种简单易懂的验证方式&#xff0c;同时也是保护您的账号安全的重要工具。通过输入正确的文字组合&#xff0c;您可以有效地确认自己的身份&#xff0c;确保只有真正的用户才能访问您的账号。 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读…...

为什么要建前缀索引?

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

vite介绍

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

2023年软件测试常见面试题

测试花费的成本&#xff0c;要深入在那个环节上&#xff0c;&#xff08;前提准备上&#xff0c;需求理解上&#xff0c;业务逻辑&#xff0c;排错上&#xff0c;业务名词上理解&#xff0c;通过什么样的方法&#xff0c;有谁能解决这样的问题&#xff09; 软性热身题 1.自我…...

关于const指针的一个常见误区

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

【记录】LLM|解答家人对AI大模型工具选取的一些疑问

写于2026年3月26日晚上。 作为一个相关研究的研究生&#xff0c;我觉得有必要针对还在读高中的同学&#xff08;实则是针对亲戚&#xff09;写一点大模型的使用简明教程。这里并不打算废话太多关于所谓提示词工程或者是AI焦虑类型的内容&#xff0c;只是想从一个长辈的角度尽量…...

终极桌面伴侣BongoCat:让键盘鼠标操作变得生动有趣的虚拟猫咪

终极桌面伴侣BongoCat&#xff1a;让键盘鼠标操作变得生动有趣的虚拟猫咪 【免费下载链接】BongoCat 让呆萌可爱的 Bongo Cat 陪伴你的键盘敲击与鼠标操作&#xff0c;每一次输入都充满趣味与活力&#xff01; 项目地址: https://gitcode.com/gh_mirrors/bong/BongoCat …...

智能资金概念在算法交易中的深度解析:从理论到实战应用

智能资金概念在算法交易中的深度解析&#xff1a;从理论到实战应用 【免费下载链接】smartmoneyconcepts This is a python package for smart money concept indicators 项目地址: https://gitcode.com/gh_mirrors/smar/smartmoneyconcepts 在当今算法交易领域&#xf…...

2026 最强 AI 毕业论文工具盘点:9 款神器帮你告别论文熬夜焦虑

一、引言&#xff1a;毕业季论文困局&#xff0c;AI 工具成破局关键 又到了高校毕业季&#xff0c;屏幕前的你是否正对着空白文档发愁&#xff1f; 开题报告反复修改&#xff0c;导师一句 “方向不明确” 就让你前功尽弃文献综述堆了几十页&#xff0c;却理不清逻辑脉络&…...

SDMatte处理动物与宠物图像效果展示:毛发级精度的自然抠图

SDMatte处理动物与宠物图像效果展示&#xff1a;毛发级精度的自然抠图 1. 为什么宠物抠图这么难 给宠物照片抠图可能是设计师最头疼的任务之一。想象一下&#xff0c;一只金毛犬站在浅色地毯上&#xff0c;毛发边缘几乎和背景融为一体&#xff1b;或者一只黑猫蜷缩在深色沙发…...

ChatGPT背后的秘密武器:一文读懂RLHF如何让大模型更懂人类

ChatGPT背后的秘密武器&#xff1a;一文读懂RLHF如何让大模型更懂人类 当你向ChatGPT提问时&#xff0c;是否曾惊叹于它回答的流畅性和准确性&#xff1f;这背后隐藏着一项关键技术——基于人类反馈的强化学习&#xff08;RLHF&#xff09;。这项技术正在重塑我们与AI交互的方式…...

从L298到自举H桥:深入聊聊直流电机驱动方案的演进与选型心得

从L298到自举H桥&#xff1a;直流电机驱动方案的技术演进与工程实践 在机器人底盘、自动化产线和智能硬件开发中&#xff0c;直流电机驱动电路的设计往往决定着整个系统的性能天花板。十年前我们可能还在用L298这类经典驱动芯片&#xff0c;如今工程师们的工具箱里已经出现了IR…...

【深度强化学习】DDPG算法在连续动作空间中的实战解析

1. DDPG算法初探&#xff1a;为什么我们需要它&#xff1f; 第一次接触DDPG&#xff08;Deep Deterministic Policy Gradient&#xff09;算法时&#xff0c;我完全被这个拗口的名字吓到了。但当我真正理解它的设计初衷后&#xff0c;才发现它其实解决了一个非常实际的问题——…...

Materials Studio8.0在CentOS7.9环境下的安装与配置指南

1. 环境准备与系统检查 在CentOS 7.9上安装Materials Studio 8.0之前&#xff0c;我们需要确保系统环境满足最低要求。我遇到过不少因为环境配置不当导致的安装失败案例&#xff0c;这里分享几个关键检查点&#xff1a; 首先检查主机名是否包含特殊字符。Materials Studio对主机…...

终极指南:如何利用MMKV在电商应用中实现高并发存储优化

终极指南&#xff1a;如何利用MMKV在电商应用中实现高并发存储优化 【免费下载链接】MMKV Tencent/MMKV: MMKV 是一个高效的键值对存储库&#xff0c;用于 Android 和 iOS 应用程序&#xff0c;具有高速&#xff0c;紧凑和易用的特点。 项目地址: https://gitcode.com/gh_mir…...