NPM 常用命令(二)

news2024/11/24 0:04:44

目录

1、npm bugs

1.1 配置

browser

registry

2、npm cache

2.1 概要

2.2 详情

2.3 关于缓存设计的说明

2.4 配置

cache

3、 npm ci

3.1 描述

3.2 配置

install-strategy

legacy-bundling

global-style

omit

strict-peer-deps

foreground-scripts

ignore-scripts

audit

fund

dry-run

workspace

workspaces

include-workspace-root


1、npm bugs

npm bugs

运行此命令会打开当前包在npm注册中对应的页面,如果没有提供包名,它将在当前文件夹中搜索 package.json 并使用 name 属性。

例如在以下路径中,执行npm bugs命令,如下如所示:

也可以直接指定包名,在npm注册中心打开包对应的路径。例如:

npm bugs jiang-isarry

1.1 配置

browser

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

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

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

registry

  • 默认值: "https://registry.npmjs.org/"
  • 类型: URL

npm 注册表的基本 URL。

2、npm cache

2.1 概要

npm cache 常用的命令如下所示:

npm cache add <package-spec>
npm cache clean [<key>]
npm cache ls [<name>@<version>]
npm cache verify

用于添加、列出、验证或清理npm缓存文件夹。

  • add:将指定的包添加到本地缓存。这个命令主要是由npm在内部使用的,但是它可以提供一种将数据显式添加到本地安装缓存的方法
  • clean:从该高速缓存文件夹中删除所有数据。请注意,这通常是不必要的,因为npm的缓存是自我修复的,并且可以抵抗数据损坏问题。
  • ls:列出缓存文件
  • verify:验证该高速缓存文件夹的内容,对任何不需要的数据进行垃圾收集,并验证缓存索引和所有缓存数据的完整性。

2.2 详情

npm 将缓存数据存储在配置的 cache 中的一个不透明目录中,名为 _cacache。 该目录是一个基于 cacache 的内容可寻址缓存,存储所有 http 请求数据以及其他与包相关的数据。 该目录主要通过 pacote 访问,该库负责从 npm@5 开始获取所有包。

通过缓存的所有数据在插入和提取时都经过完整验证。 缓存损坏将触发错误,或向 pacote 发出信号,表明必须重新获取数据,这将自动执行。 出于这个原因,除了回收磁盘空间之外,永远不需要清除缓存,这就是为什么 clean 现在需要 --force 运行。

目前没有通过 npm 公开的方法来检查或直接管理此缓存的内容。 为了访问它,必须直接使用 cacache

npm 不会自行删除数据: 缓存会随着新包的安装而增长。

2.3 关于缓存设计的说明

npm 缓存严格来说是一个缓存: 不应依赖它作为包数据的持久可靠的数据存储。 npm 不保证以前缓存的数据以后会可用,并且会自动删除损坏的内容。 缓存所做的主要保证是,如果它确实返回数据,那么该数据将完全是插入的数据。

要对现有缓存内容运行离线验证,请使用 npm cache verify

2.4 配置

cache

  • 默认值: Windows: %LocalAppData%\npm-cache,Posix: ~/.npm
  • 类型: 路径

npm 的缓存目录的位置。

3、 npm ci

3.1 描述

此命令与 npm install 类似,不同之处在于它旨在用于自动化环境,例如测试平台、持续集成和部署 - 或任何你希望确保对依赖进行全新安装的情况。

使用 npm install 和 npm ci 的主要区别是:

  • 项目必须有一个现有的 package-lock.json 或 npm-shrinkwrap.json
  • 如果包锁中的依赖与 package.json 中的依赖不匹配,npm ci 将退出并出错,而不是更新包锁。
  • npm ci 一次只能安装整个项目: 不能使用此命令添加单个依赖。
  • 如果 node_modules 已经存在,它将在 npm ci 开始安装之前自动删除。
  • 它永远不会写入 package.json 或任何包锁: 安装基本上被冻结了。

注意: 如果你通过运行带有可能影响依赖树形状的标志(例如 --legacy-peer-deps 或 --install-links)的 npm install 创建 package-lock.json 文件,则必须为 npm ci 提供相同的标志,否则你可能会遇到错误。 一个简单的方法是运行例如 npm config set legacy-peer-deps=true --location=project 并将 .npmrc 文件提交到你的 repo。

3.2 配置

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

omit

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

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

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

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

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

strict-peer-deps

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

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

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

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

foreground-scripts

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

在前台进程中运行已安装包的所有构建脚本(即 preinstallinstall 和 postinstall)脚本,与主 npm 进程共享标准输入、输出和错误。

请注意,这通常会使安装运行速度变慢,并且噪音更大,但对调试很有用。

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 的末尾显示消息时,确认正在寻找资金的依赖的数量。

dry-run

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

表示你不希望 npm 进行任何更改,并且它应该只报告它会做的事情。 这可以传递到任何修改本地安装的命令中,例如 installupdatededupeuninstall 以及 pack 和 publish

注意: 其他网络相关命令不支持此功能,例如 dist-tagsowner 等。

workspace

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

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

workspace 配置的有效值为:

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

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

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

workspaces

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

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

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

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

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

include-workspace-root

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

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

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

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

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

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

 

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

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

相关文章

文心一言 VS 讯飞星火 VS chatgpt (86)-- 算法导论8.2 3题

三、用go语言&#xff0c;假设我们在 COUNTING-SORT的第 10行循环的开始部分&#xff0c;将代码改写为: 10 for j 1 to A.length 试证明该算法仍然是正确的。它还稳定吗? 文心一言&#xff1a; 首先&#xff0c;让我们先明确 COUNTING-SORT 算法的基本思想。COUNTING-SOR…

Java学习笔记之----I/O(输入/输出)二

【今日】 孩儿立志出乡关&#xff0c;学不成名誓不还。 文件输入/输出流 程序运行期间&#xff0c;大部分数据都在内存中进行操作&#xff0c;当程序结束或关闭时&#xff0c;这些数据将消失。如果需要将数据永久保存&#xff0c;可使用文件输入/输出流与指定的文件建立连接&a…

kubernetes/cluster/addons/fluentd-elasticsearch

#发文福利# 一、前言 kubernetes 1.23搭建EFK所用到的yaml文件&#xff0c;本帖均来自kubernetes官方&#xff0c;且没做修改。 https://github.com/kubernetes/kubernetes/tree/release-1.23/cluster/addons/fluentd-elasticsearch 二、EFK 原版yaml 1、create-logging-na…

【Unity3D】UI Toolkit元素

1 前言 UI Toolkit简介 中介绍了 UI Builder、样式属性、UQuery、Debugger&#xff0c;UI Toolkit容器 中介绍了 VisualElement、ScrollView、ListView、GroupBox 等容器&#xff0c;本文将介绍 UI Toolkit 中的元素&#xff0c;主要包含 Label、Button、TextField、Toggle、Ra…

Nerd Font 字体安装

一、Nerd Font 是什么&#xff1f; Nerd Font 是为开发人员准备的&#xff0c;具有大量字形&#xff08;图标&#xff09;的字体。特别是从流行的“标志性字体”中添加大量额外的字形&#xff0c;如Font Awesome、Devicons、Octicons等。 二、安装步骤 1.克隆仓库 git clon…

【上海迪士尼度假区】技术解决方案

开源平台地址Giteehttps://gitee.com/issavior/disney 技术解决方案 1. 背景2. 技术架构3. 业务架构3.1 架构图3.2 说明 4. 技术能力4.1 自研中间件4.2 定制化中间件 5. 领域模型6. 数据模型7. 交易链路8. 状态机8. 接口文档 1. 背景 上海迪士尼度假区已运营近10年&#xff0c…

【微服务部署】四、Jenkins一键打包部署NodeJS(Vue)前端项目步骤详解

本文介绍使用Jenkins一键将NodeJS&#xff08;Vue&#xff09;前端项目打包并上传到生产环境服务器&#xff0c;这里使用的是直接打包静态页面&#xff0c;发送到远程服务器Nginx配置目录的方式&#xff0c;首先确保服务器环境配置好&#xff0c;安装Nginx&#xff0c;运行目录…

微软拼音输入法配置小鹤双拼

实现微软拼音能够使用小鹤双拼&#xff0c;再也不用下载搜狗输入法了 winR输入regedit&#xff0c;打开注册表 计算机\HKEY_CURRENT_USER\Software\Microsoft\InputMethod\Settings\CHS新建字符串值&#xff1a; 名字为&#xff1a;UserDefinedDoublePinyinScheme0值为 &#…

加杠杆平台怎么样_哪个平台可以给股票加杠杆?配先查

加杠杆是一种投资策略&#xff0c;以小额的资金进行更大规模的投资交易。这种策略通常在金融市场中使用&#xff0c;包括股票市场。然而&#xff0c;加杠杆投资并非适合所有人&#xff0c;因为它带有更高的风险和潜在的损失。那么哪个平台可以给股票加杠杆&#xff1f; 通过配先…

手写Mybatis:第12章-完善ORM框架,增删改查操作

文章目录 一、目标&#xff1a;完善增删改查二、设计&#xff1a;完善增删改查三、实现&#xff1a;完善增删改查3.1 工程结构3.2 完善增删改查类图3.3 扩展解析元素3.4 新增执行方法3.4.1 执行器接口添加update3.4.2 执行器抽象基类3.4.3 简单执行器 3.5 语句处理器实现3.5.1 …

CS420 课程笔记 P7 - 虚拟内存 多级指针寻址

文章目录 IntroPointersMemory leaksPointer pathPointer scanningExample! Intro 上节课我们学习了静态地址&#xff0c;这节课我们将着手关注动态地址&#xff0c;我们需要了解一个叫做指针的东西 Pointers 简单地说&#xff0c;指针是对象之间的单向连接 Pointers are co…

【 BlockChain 】零知识证明

【 BlockChain 】零知识证明 一、零知识证明起源 “零知识”的概念最早在80年代由麻省理工学院的研究人员 Shafi Goldwasser&#xff0c;Silvio Micali 和 Charles Rackoff 所提出。当时这些人正在研究与交互证明系统相关的问题——即一种理论系统&#xff0c;使得甲方&#…

QT6删除旧的编译文件,编译会出错,可以选择重新选择编译

QT6工程文件和编译文件的路径关系 下面是显示的工程情况 可能编译文件全部被删除&#xff0c;或者部分缺失 编译问题出现后的处理办法 删去编译工程时添加的内容&#xff0c;其中主要修改CMakeLists.txt中添加的内容&#xff0c;例如添加的路径或resource内容&#xff0c;可…

两个非递减顺序表合并成一个非递减顺序表

两个非递减顺序表合并成一个非递减顺序表 引入 以下这个例题的描述是关于合并两个有序的数组&#xff0c;然后合并之后同样也是一个非递减的顺序排列 但是我名这里讲的不是顺序表&#xff0c;而是封装成一个顺序表&#xff0c;但是我们这里的顺序表其实底层同样是一个数组&a…

复盘|攻防实战中面对“谍影重重”,如何出奇制胜?

随着“数字孪生”概念的深入人心&#xff0c;数字化转型的进展也是一日千里。与此同时&#xff0c;在网络世界中的攻防对抗热度有增无减&#xff0c;甚至连最顶级的安全团队一不小心也会中招。在攻防演练中发生过好几次这种情况&#xff1a;腾讯安全一线的分析人员在前方为攻击…

ATSHA204A国产替代新选择:LCSHA204

ATSHA204A是一款用于固件版权保护&#xff0c;防抄板仿克隆的加密芯片。包含多达16个密钥存储区用于安全存储密钥。同时提供OTP区用于存储用户固定信息。因推出时间早以及芯片本身的安全性在中国市场的使用量非常大。 受当前全球经济和大环境的影响造成该芯片供货严重不足&…

基于Python+DenseNet121算法模型实现一个图像分类识别系统案例

目录 介绍在TensorFlow中的应用实战案例最后 一、介绍 DenseNet&#xff08;Densely Connected Convolutional Networks&#xff09;是一种卷积神经网络&#xff08;CNN&#xff09;架构&#xff0c;2017年由Gao Huang等人提出。该网络的核心思想是密集连接&#xff0c;即每…

正中优配:怎样开通创业板交易权限?

创业板是我国证券商场的一种特别板块&#xff0c;主要面向创业型企业和高科技企业&#xff0c;至今已成为我国股票商场中较为热门的板块之一。关于投资者来说&#xff0c;能够在创业板中买卖不仅可以发掘到更多有潜力的企业&#xff0c;还可能带来更高的收益。那么&#xff0c;…

关于DC电源模块的过流保护功能说明

BOSHIDA 关于DC电源模块的过流保护功能说明 DC电源模块是一种常见的电源供应模块&#xff0c;广泛应用于各种电子设备和系统中。为了确保电源模块的安全和可靠性&#xff0c;通常会设置过流保护功能。 过流保护功能是指当电源模块输出电流超过额定电流时&#xff0c;会自动切…

CountDownLatch原理-(主线程等待子线程结束再执行)

CountDownLatch是共享锁的一种实现,它默认构造 AQS 的 state 值为 count。当线程使用countDown方法时,其实使用了tryReleaseShared方法以CAS的操作来减少state,直至state为0就代表所有的线程都调用了countDown方法。当调用await方法的时候&#xff0c;如果state不为0&#xff0…