NPM 常用命令(六)

news2025/1/21 15:44:51

1、npm explain

1.1 命令使用

npm explain <package-spec>

别名: why

1.2 描述

此命令将打印导致在当前项目被其他引用包的依赖链。

如果提供了一个或多个包规范,则只有与其中一个说明符匹配的包才会解释它们的关系。

包规范还可以引用 ./node_modules 中的文件夹

例如,在 npm 的源代码树中运行 npm explain unpipe 将显示:

如果要指定特定文件夹中的包,请将其作为参数传递给命令。 当试图弄清楚为什么要复制给定的依赖以满足项目中冲突的版本要求时,这可能很有用。

1.3 配置

json

  • 默认值: false
  • 类型: 布尔值

是否输出 JSON 数据,而不是正常输出。

  • 在 npm pkg set 中,它可以使用 JSON.parse() 解析集合值,然后再将它们保存到你的 package.json

并非所有 npm 命令都支持。

workspace

  • 默认值:
  • 类型: 字符串(可以设置多次)

启用在当前项目的已配置工作区的上下文中运行命令,同时通过仅运行此配置选项定义的工作区进行过滤。

workspace 配置的有效值为:

  • 工作区名称
  • 工作区目录的路径
  • 父工作区目录的路径(将导致选择该文件夹中的所有工作区)

为 npm init 命令设置时,可以将其设置为尚不存在的工作区的文件夹,以创建文件夹并将其设置为项目中的全新工作区。

2、npm explore

2.1 使用命令

npm explore <pkg> [ -- <command>]

2.2 描述

在指定的已安装包的目录中生成一个子 shell。

如果指定了命令,则它在子 shell 中运行,然后立即终止。

这在 node_modules 文件夹中的 git 子模块的情况下比较方便:

npm explore some-dependency -- git pull origin master

请注意,该包不会在之后自动重建,因此如果你进行任何更改,请务必使用 npm rebuild <pkg>

在实际使用中,这个命令的用的比较的少,有些鸡肋了,基本上大部分包很少有git子模块,git子模块在实际使用有利也有弊吧,部分场景中可能会用到。

 

2.3 配置

shell

  • 默认值: SHELL 环境变量,或 Posix 上的 "bash",或 Windows 上的 "cmd.exe"
  • 类型: 字符串

为 npm explore 命令运行的 shell。

3、npm find-dupes

3.1 命令使用

npm find-dupes

3.2 描述

以 --dry-run 模式运行 npm dedupe,使 npm 仅输出重复项,而不会实际更改包树。

3.3 配置

install-strategy

  • 默认值: "hoisted"
  • 类型: "hoisted"、"nested"、"shallow" 或 "linked"

设置在 node_modules 中安装包的策略。 hoisted(默认): 在顶层安装非复制,并在目录结构中根据需要复制。 nested: (以前的 --legacy-bundling)就地安装,无需提升。 shallow(以前的 --global-style)只在顶层安装直接的 deps。 linked: (实验)安装在 node_modules/.store 中,链接到位,未提升。

legacy-bundling

  • 默认值: false
  • 类型: 布尔值
  • 已弃用: 此选项已被启用,取而代之的是 --install-strategy=nested 

不要在 node_modules 中提升包安装,而是以与它们所依赖的方式相同的方式安装包。 这可能会导致非常深的目录结构和重复的软件包安装,因为没有数据去重。 设置 --install-strategy=nested

global-style

  • 默认值: false
  • 类型: 布尔值
  • 已弃用: 此选项已被弃用,取而代之的是 --install-strategy=shallow 

仅在顶层 node_modules 中安装直接依赖,但提升更深层次的依赖。 设置 --install-strategy=shallow

strict-peer-deps

  • 默认值: false
  • 类型: 布尔值

如果设置为 true,而 --legacy-peer-deps 没有设置,那么任何冲突的 peerDependencies 都将被视为安装失败,即使 npm 可以根据非对等依赖合理地猜测出适当的解决方案。

默认情况下,依赖图中的冲突 peerDependencies 将使用最近的非对等依赖规范来解决,即使这样做会导致某些包收到超出其包的 peerDependencies 对象中设置的范围的对等依赖。

当执行这样的覆盖时,会打印一条警告,解释冲突和涉及的包。 如果设置了 --strict-peer-deps,则此警告被视为失败。

package-lock

  • 默认值: true
  • 类型: 布尔值

如果设置为 false,则安装时忽略 package-lock.json 文件。 如果设置为true,这也将阻止写入 package-lock.json

omit

  • 默认值: 'dev' 如果 NODE_ENV 环境变量设置为 'production',否则为空。
  • 类型: "dev"、"optional"、"peer"(可多次设置)

要从磁盘上的安装树中省略的依赖类型。

请注意,这些依赖仍会被解析并添加到 package-lock.json 或 npm-shrinkwrap.json 文件中。 它们只是没有物理安装在磁盘上。

如果一个包类型同时出现在 --include 和 --omit 列表中,那么它将被包括在内。

如果生成的省略列表包含 'dev',则 NODE_ENV 环境变量将针对所有生命周期脚本设置为 'production'

ignore-scripts

  • 默认值: false
  • 类型: 布尔值

如果为 true,npm 不会运行 package.json 文件中指定的脚本。

请注意,如果设置了 ignore-scripts,则明确旨在运行特定脚本的命令(例如 npm startnpm stopnpm restartnpm test 和 npm run-script)仍将运行其预期的脚本,但它们不会运行任何前置或后置脚本。

audit

  • 默认值: true
  • 类型: 布尔值

当 "true" 将审计报告与当前 npm 命令一起提交到默认注册表和为范围配置的所有注册表时。

  • 默认值: true
  • 类型: 布尔值

告诉 npm 为包的可执行文件创建符号链接(或 Windows 上的 .cmd shims )。

设置为 false 使其不执行此操作。 这可以用来解决某些文件系统不支持符号链接的事实,即使在表面上是 Unix 系统上也是如此。

fund

  • 默认值: true
  • 类型: 布尔值

当 "true" 在每个 npm install 的末尾显示消息时,确认正在寻找资金的依赖的数量。 

workspace

  • 默认值:
  • 类型: 字符串(可以设置多次)

启用在当前项目的已配置工作区的上下文中运行命令,同时通过仅运行此配置选项定义的工作区进行过滤。

workspace 配置的有效值为:

  • 工作区名称
  • 工作区目录的路径
  • 父工作区目录的路径(将导致选择该文件夹中的所有工作区)

为 npm init 命令设置时,可以将其设置为尚不存在的工作区的文件夹,以创建文件夹并将其设置为项目中的全新工作区。

此值不会导出到子进程的环境中。

workspaces

  • 默认值: null
  • 类型: 空值或布尔值

设置为 true 以在 all 配置的工作区的上下文中运行命令。

显式将此设置为 false 将导致像 install 这样的命令完全忽略工作区。 未明确设置时:

  • 在 node_modules 树上运行的命令(安装、更新等)会将工作区链接到 node_modules 文件夹。 - 执行其他操作(测试、执行、发布等)的命令将在根项目上运行,除非在 workspace 配置中指定了一个或多个工作区。

此值不会导出到子进程的环境中。

include-workspace-root

  • 默认值: false
  • 类型: 布尔值

为命令启用工作区时包括工作区根。

当为 false 时,通过 workspace 配置指定单个工作区,或通过 workspaces 标志指定所有工作区,将导致 npm 仅在指定的工作区上运行,而不是在根项目上运行。

此值不会导出到子进程的环境中。

  • 默认值: false
  • 类型: 布尔值

设置文件时: 协议依赖将作为常规依赖打包和安装,而不是创建符号链接。 此选项对工作区没有影响。

4、npm fund

4.1 命令使用

npm fund [<package-spec>]

4.2 描述

此命令检索有关如何为给定项目的依赖提供资金的信息。 如果没有提供包名,它将以树形结构列出所有正在寻找资金的依赖,列出资金的类型和要访问的 url。 如果提供了包名,那么它会尝试使用 --browser 配置
 参数打开其资金 url; 如果包有多个资金来源,将提示用户通过 --which 选项来消除歧义。

该列表将避免重复条目,并将所有共享相同 url 的包堆叠为单个条目。 因此,该列表与 npm ls 的输出形状不同。

4.3 工作区支持

可以使用以下示例选项过滤结果以仅包含单个工作区及其依赖。

示例:

下面是一个在配置了工作区中运行 npm fund 的示例:

以下是仅按同一项目中的特定工作区 b 过滤时的预期结果示例:

4.4 配置

json

  • 默认值: false
  • 类型: 布尔值

是否输出 JSON 数据,而不是正常输出。

  • 在 npm pkg set 中,它可以使用 JSON.parse() 解析集合值,然后再将它们保存到你的 package.json

并非所有 npm 命令都支持。

browser

  • 默认值: OS X: "open",Windows: "start"、其他: "xdg-open"
  • 类型: 空值、布尔值或字符串

npm 命令调用以打开网站的浏览器。

设置为 false 以抑制浏览器行为,而是将 url 打印到终端。

设置为 true 以使用默认系统 URL 打开器。

unicode

  • 默认值: 在 Windows 上为 false,在具有 unicode 区域设置的 mac/unix 系统上为 true,如 LC_ALLLC_CTYPE 或 LANG 环境变量所定义。
  • 类型: 布尔值

当设置为 true 时,npm 在树输出中使用 unicode 字符。 当为 false 时,它​​使用 ascii 字符而不是 unicode 字形。

workspace

  • 默认值:
  • 类型: 字符串(可以设置多次)

启用在当前项目的已配置工作区的上下文中运行命令,同时通过仅运行此配置选项定义的工作区进行过滤。

workspace 配置的有效值为:

  • 工作区名称
  • 工作区目录的路径
  • 父工作区目录的路径(将导致选择该文件夹中的所有工作区)

为 npm init 命令设置时,可以将其设置为尚不存在的工作区的文件夹,以创建文件夹并将其设置为项目中的全新工作区。

此值不会导出到子进程的环境中。

which

  • 默认值: null
  • 类型: 空值或数字

如果有多个资金来源,打开对应索引的来源 URL。如果只有1个,可以添加--which1,或者不添加参数.

 弹出对应的页面,可以其中的一人或多人进行赞助。

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

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

相关文章

Typescript技术分享

1、初识TypeScript TypeScript是什么&#xff1f; TypeScript 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个超集。TypeScript 在 JavaScript 的基础上添加了可选的静态类型和基于类的面向对象编程。 2、TS类型 2.1 布尔类型(boolean) boolean类型只有两个取…

重建与发展:数字资产借贷行业朝着可持续发展迈进!

纵观历史&#xff0c;贷款和货币一样古老&#xff0c;无论哪种形式的货币都需要有其借贷市场。现在&#xff0c;比特币以其分散和透明的性质&#xff0c;在加密领域占据龙头地位。 就像之前的货币一样&#xff0c;比特币要真正蓬勃发展&#xff0c;也需要一个强大的借贷市场。然…

2023计算机毕业设计题目 毕设选题大全

文章目录 0 前言1 java web 管理系统 毕设选题2 java web 平台/业务系统 毕设选题3 游戏设计、动画设计类 毕设选题 (适合数媒的同学)4 算法开发5 数据挖掘 毕设选题6 大数据处理、云计算、区块链 毕设选题7 网络安全 毕设选题8 通信类/网络工程 毕设选题9 嵌入式 毕设选题10 开…

数据中心的未来是什么?

数据中心作为数字化经济的基础设施&#xff0c;在未来的发展中将会呈现出以下几个趋势和变化&#xff1a;多云环境的普及&#xff1a;未来的数据中心将会逐渐实现多云环境的兼容和协同&#xff0c;支持从公共云、私有云到混合云的多重部署模式。多云化环境将提供更多的选择和灵…

Matlab图像处理-最大类间方差阈值选择法(Otsu)

基本思想 最大类间方差阈值选择法又称为Otsu 算法&#xff0c;该算法是在灰度直方图的基础上用最小二乘法原理推导出来的&#xff0c;具有统计意义上的最佳分割阈值。它的基本原理是以最佳阈值将图像的灰度直方图分割成两部分&#xff0c;使两部分之间的方差取得最大值&#x…

全球城市汇总【最新】

文章目录 案例图国家城市大洲 数据 全球城市、国家、介绍汇总。包含 .csv .sql .xml 格式数据。 案例图 国家 城市 大洲 数据 获取上图资源绑定 https://blog.csdn.net/qq_40374604/category_12435042.html 如找不到在合集中查找。

【web开发】3、Bootstrap基础

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、Bootstrap是什么&#xff1f;二、使用步骤1.引入Bootstrap2.Bootstrap常用全局 CSS 样式介绍与示例布局容器栅格系统排版代码表格表单按钮图片辅助类3.Bootstra…

JUC P8 ThreadLocal 基础+代码

JUC P8 ThreadLocal 基础代码 教程&#xff1a;https://www.bilibili.com/video/BV1ar4y1x727?p100 引出问题 ThreadLocal 和 TreadLocalMap 数据结构关系&#xff1f; ThreadLocal 中的 key 是弱引用&#xff0c;为什么&#xff1f; ThreadLocal 内存泄漏问题是什么&#x…

git标签基础

打标签:git可以给仓库历史中某个提交打上标签,以示重要,比较有代表人们会使用这个功能来标记发布结点(V1.0,V2.0) 列出本地标签: git tag --list git tag -l "V1.85*" 列出远端仓库的中所有标签 git ls-remote --tags给标签添加一些描述信息 git tag -a v1.3 -m …

Amazon Fargate 使用 Seekable OCI 实现更快的容器启动速度

虽然在部署和扩展应用程序时&#xff0c;使用容器进行开发的方式已日趋流行&#xff0c;但仍有一些领域可以改进。扩展容器化应用程序的主要问题之一是启动时间长&#xff0c;尤其是在纵向扩展期间&#xff0c;需要添加较新的实例。此问题可能会对客户体验&#xff08;例如&…

AST还原实战|第二届猿人学js逆向比赛第三题混淆还原详解

关注它&#xff0c;不迷路。 本文章中所有内容仅供学习交流&#xff0c;不可用于任何商业用途和非法用途&#xff0c;否则后果自负&#xff0c;如有侵权&#xff0c;请联系作者立即删除&#xff01; 1. 目标地址 https://match2023.yuanrenxue.cn/topic/3 其加密参数tok…

精益创业的三个测量方法

精益创业三个测量工具【安志强趣讲282期】 趣讲大白话&#xff1a;没法度量就没法改进 **************************** 工具1&#xff1a;AB对比测试 就是产品有两个或多个版本 然后通过外部客户或内部人员评测 可以组织天使用户群&#xff1a;愿意参与的专业人士 工具2&#x…

【Linux】工具GCC G++编译器轻度使用(C++)

目录 一、关联知识背景 二、GCC如何的编译过程 【2.1】预处理(进行宏替换) 【2.2】编译(生成汇编) 【2.3】连接(生成可执行文件或库文件) 三、GCC命令的常用选项 四、动静态链接 一、关联知识背景 gcc 与 g 分别是 gnu 的 c & c 编译器 gcc/g 在执行编译工作的时候…

Leetcode 剑指 Offer II 043. 完全二叉树插入器

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer&#xff08;专项突击版&#xff09;系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 完全二叉树是每一层&#xff08;除最后一层外&#xff09;都是完…

并发聊天服务器编写

并发聊天服务器 package mainimport ("fmt""net""strings""time" )// 结构体 type Client struct {C chan string //用户发送数据的管道Name string //用户名Addr string //网络地址 }// 保存在线用户 cliAddr -->cli…

Wireshark技巧[监听串口包]

监听串口包 本文摘录于&#xff1a;https://blog.csdn.net/qq_20405005/article/details/79652927只是做学习备份之用&#xff0c;绝无抄袭之意&#xff0c;有疑惑请联系本人&#xff01; 这里要保证安装了USBpcap: 打开USBpcap后一半都要输入过滤条件,否则USB太多数据了,比如…

输入验证在防止安全漏洞方面的重要性

在当今快速发展的数字环境中&#xff0c;技术推动创新和便利&#xff0c;确保我们数字资产的安全仍然是一个关键问题。创建强大的应用程序安全性的核心在于输入验证的基本且最重要的概念。 在这篇博文中&#xff0c;我们将介绍输​​入验证的重要性及其对加强我们的数字防御以…

python可视化模块—快速利用matplot绘制图表

文章目录 一、Matplotlib基本介绍二、两种绘图方式区别&#xff08;plt.*** 和ax.***&#xff09;三、如何使用Matplotlib绘图1、画布—绘画的画板2、配置—更个性化的绘图全局配置局部配置面向对象绘图过程&#xff1a;ax代表子图变量过程式绘图过程 四、常用绘图图形如何选择…

Java集合学习(2023年超详细)

java集合学习目录 一、基本概要0. 辅助工具类0.1 Collection 和 Collections 有什么区别&#xff1f;0.2 comparable 和 comparator的区别&#xff1f; 1.什么是集合2.集合的分类2.1 Collection接口2.2 Map接口 二、集合框架底层数据结构1. &#x1f60a;Collection1.1 ❤List1…

【数据结构】3000字剖析链表及双向链表

文章目录 &#x1f490; 链表的概念与结构&#x1f490;链表的介绍&#x1f490;链表的模拟实现 &#x1f490;双向链表&#x1f490;双向链表的模拟实现 &#x1f490;链表常用的方法&#x1f490;链表及顺序表的遍历&#x1f490;ArrayList和LinkedList的差异 &#x1f490; …