NPM 常用命令(四)

news2024/11/26 22:23:09

目录

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:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/978439.html

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

相关文章

79 # koa 相应结果设置

返回的类型可能是文件流&#xff0c;或者是对象的等方式&#xff0c;需要我们对 body 的类型进行判断在返回。 判断是否是 string 或者 buffer 、流、对象 if (typeof body "string" || Buffer.isBuffer(body)) {res.end(body); } else if (body instanceof Strea…

大模型参数高效微调技术原理综述(三)-P-Tuning、P-Tuning v2

随着&#xff0c;ChatGPT 迅速爆火&#xff0c;引发了大模型的时代变革。然而对于普通大众来说&#xff0c;进行大模型的预训练或者全量微调遥不可及。由此&#xff0c;催生了各种参数高效微调技术&#xff0c;让科研人员或者普通开发者有机会尝试微调大模型。 因此&#xff0c…

面试题速记:JavaScript有哪些数据类型,它们的区别是?

JavaScript有哪些数据类型&#xff0c;它们的区别&#xff1f; JavaScript共有八种数据类型&#xff0c;分别是 Undefined、Null、Boolean、Number、String、Object、Symbol、BigInt。 其中 Symbol 和 BigInt 是ES6 中新增的数据类型&#xff1a; ●Symbol 代表创建后独一无二…

vue3 element - plus 安装使用教程

下边是安装教程 element - plus 是针对 vue3 开发 一个 Vue 3 UI 框架 | Element Plus (element-plus.org)https://element-plus.org/zh-CN/ 安装 element - plus ui 库 # 选择一个你喜欢的包管理器# NPM $ npm install element-plus --save# Yarn $ yarn add elemen…

python 学习笔记(4)—— webdriver 自动化操作浏览器(基础操作)

安装 web driver&#xff1a; 使用 driver 前&#xff0c;需要下载与浏览器版本相对应的 driver。如要在 Chrome 浏览器上操作&#xff0c;就要下载Chrome Driver。 几个常用浏览器的参考和下载地址&#xff1a; Edge Driver&#xff1a;https://developer.microsoft.com/en…

C++内存区堆和栈

在C中&#xff0c;内存分成5个区&#xff0c;堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈&#xff0c;就是那些由编译器在需要的时候分配&#xff0c;在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆&#xff0c;就是那些…

《Linux从练气到飞升》No.21 Linux简单实现一个shell

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的…

​​​​​​​光伏智慧设施休息区

随着人们环保意识的日益增强&#xff0c;光伏智慧景观渐渐出现在大众的视野&#xff0c;成为低碳城镇建设的新景观、新亮点。打造光伏智慧设施休息区&#xff0c;既能满足游客休息纳凉&#xff0c;还能设置手机相机等充电区域。此设备组还可提供夜间照明灯、音乐广播、多媒体广…

flask中的操作数据库的插件Flask-SQLAlchemy

1、ORM 框架 Web 开发中&#xff0c;一个重要的组成部分便是数据库了。Web 程序中最常用的莫过于关系型数据库了&#xff0c;也称 SQL 数据库。另外&#xff0c;文档数据库&#xff08;如 mongodb&#xff09;、键值对数据库&#xff08;如 redis&#xff09;近几年也逐渐在 w…

普通平衡树 Splay

Splay 简介 Splay&#xff08;伸展树&#xff09;&#xff0c;又叫做分裂树&#xff0c;是一种自调整形式的二叉查找树&#xff0c;满足二叉查找树的性质&#xff1a;一个节点左子树的所有节点的权值&#xff0c;均小于这个节点的权值。且其右子树所有节点的权值&#xff0c;均…

IEC 62368-1:2023(第4版)《音频视频、信息和通信设备 第1部分安全要求》标准发布,IEC 62368-1第四版标准更新与变化

2023年05月26日&#xff0c;IEC 62368-1:2023 《音频视频、信息和通信设备 第1部分安全要求》第4版标准正式发布&#xff0c;2023年08月18日&#xff0c;IECEE又发布了TRF模板&#xff0c;为新版标准的实施和应用做好了准备. 下载地址 &#xff1a; https://download.csdn.net…

【个人博客系统网站】项目的发布 · 通过公网IP访问我们的网站 · 思考总结

【JavaEE】进阶 个人博客系统&#xff08;6&#xff09; 文章目录 【JavaEE】进阶 个人博客系统&#xff08;6&#xff09;1. 项目发布1.1 后端代码修改1.1.1 数据库密码1.1.2 端口号修改1.1.3 文件保存地址修改1.1.4 静态资源映射修改 1.2 云服务器1.2.1 建库建表1.2.2 必要…

算法通关村第十三关——溢出问题处理模板

前言 溢出问题是面试当中输出涉及到数字的一个需要特别注意的地方&#xff0c;典型的题目有三个&#xff1a;数字反转&#xff0c;将字符串转成数字和回文数。 1.整数反转 力扣7题&#xff0c;给你一个 32 位的有符号整数 x &#xff0c;返回将 x 中的数字部分反转后的结果。…

Vue + Element UI 前端篇(十五):嵌套外部网页

Vue Element UI 实现权限管理系统 前端篇&#xff08;十五&#xff09;&#xff1a;嵌套外部网页 嵌套外部网页 在有些时候&#xff0c;我们需要在我们的内容栏主区域显示外部网页。如查看服务端提供的SQL监控页面&#xff0c;接口文档页面等。 这个时候就要求我们的导航菜…

Intel OneAPI黑客松记录

题目&#xff1a; 生成2048*2048个随机单精度实数; 实现两维Real to complex FFT参考代码; 使用OneMKL计算两维Real to complex FFT; 对两维FFT输出数据进行全数据比对&#xff1b; 平均性能数据比对,输出FFT参考代码平均运行时间和oneMKL FFT平均运行时间。 代码&#x…

12 - 多线程之锁优化(上):深入了解Synchronized同步锁的优化方法

在并发编程中&#xff0c;多个线程访问同一个共享资源时&#xff0c;我们必须考虑如何维护数据的原子性。在 JDK1.5 之前&#xff0c;Java 是依靠 Synchronized 关键字实现锁功能来做到这点的。Synchronized 是 JVM 实现的一种内置锁&#xff0c;锁的获取和释放是由 JVM 隐式实…

序列化二叉树

解题思路一&#xff1a; import java.util.*; /* public class TreeNode {int val 0;TreeNode left null;TreeNode right null;public TreeNode(int val) {this.val val;}} */ public class Solution {int index -1;String Serialize(TreeNode root) {StringBuffer resul…

Jenkins介绍

Jenkins介绍 持续集成、持续部署的工具很多&#xff0c;其中Jenkins是一个开源的持续集成平台。 Jenkins涉及到将编写完毕的代码发布到测试环境和生产环境的任务&#xff0c;并且还涉及到了构建项目等任务。 Jenkins需要大量的插件保证工作&#xff0c;安装成本较高&#xff0…

FreeRTOS源码分析-14 操作系统多任务核心

1 列表及列表项概念及其应用 1.1 freeRTOS列表介绍 任务调度列表介绍 其他组件列表介绍 1.2 列表及列表项的定义 双向链表结构 1&#xff1a;插入与删除效率高&#xff0c;只要操作一次就能完成 2&#xff1a;对数据的管理更加灵活与便捷&#xff0c;有利于编写逻辑清晰的…

MyBatisPlus入门篇2 - 条件查询、查询投影、查询条件、id生成策略、多记录操作、逻辑删除

目录 1.条件查询、多条件查询 MyBatisPlus将书写复杂的SQL查询条件进行了封装&#xff0c;使用编程的形式完成查询条件的组合。 Test void testGetByCondition() {// 方式一&#xff1a;按条件查询QueryWrapper<User> qw new QueryWrapper<User>();qw.lt("…