NPM 常用命令(十)

目录

 1、npm prefix

1.1 使用语法

1.2 描述

1.3 示例

2、npm prune 

2.1 使用语法

2.1 描述

3、npm publish

3.1 使用语法

3.2 描述

包中包含的文件

4、npm query

4.1 使用语法

4.2 描述

4.3 示例

5、npm rebuild

5.1 使用语法

5.2 描述

6、npm repo

6.1 使用语法

6.2 描述

 7、npm restart

7.1 使用语法

7.2 描述

8、npm root

8.1 使用语法

8.2 描述

9、npm run-script

9.1 使用语法

9.2 描述

10、npm search

10.1 使用语法

10.2 描述

10.3 示例


 1、npm prefix

此命令用于显示前缀

1.1 使用语法

npm prefix [-g]

1.2 描述

将本地前缀打印到标准输出。 这是包含 package.json 文件或 node_modules 目录的最近父目录,除非还指定了 -g

如果指定了 -g,这将是全局前缀的值。

1.3 示例

2、npm prune 

此命令用于删除与项目无关得包。

2.1 使用语法

npm prune [[<@scope>/]<pkg>...]

首先看一下目前项目得包,如下所示:

运行 npm prune 进行处理,如下所示:

 

发现有部分文件无法删除,其他得安装包都已删除。再次查看,如下图所示:

2.1 描述

此命令删除 "extraneous" 包。 如果提供了包名称,则仅删除与提供的名称之一匹配的包。

无关的包是那些存在于 node_modules 文件夹中的包,它们没有被列为任何包的依赖列表。

如果指定了 --production 标志或 NODE_ENV 环境变量设置为 production,则此命令将删除你的 devDependencies 中指定的包。 设置 --no-production 将否定 NODE_ENV 设置为 production

如果使用 --dry-run 标志,则实际上不会进行任何更改。

如果使用 --json 标志,则 npm prune 所做的更改(或将使用 --dry-run 所做的更改)将打印为 JSON 对象。

在正常操作中,无关的模块会被自动修剪,因此你只需要带有 --production 标志的此命令。 然而,在现实世界中,操作并不总是 "normal"。 当发生崩溃或错误时,此命令可以帮助清理任何产生的垃圾。

3、npm publish

此命令用于发布一个包

3.1 使用语法

npm publish <package-spec>

3.2 描述

将包发布到注册表,以便可以按名称安装。

默认情况下,npm 将发布到公共注册表。 这可以通过指定不同的默认注册表或在名称中使用 scope
 并结合范围配置的注册表来覆盖。

package 的解释方式与其他命令相同(如 npm install,可以是:

  • a) 包含由 package.json
     文件描述的程序的文件夹
  • b) 一个 gzipped tarball,包含 (a)
  • c) 解析为 (b) 的 url
  • d) 在注册表上发布的 <name>@<version>,带有 (c)
  • e) 指向 (d) 的 <name>@<tag>
  • f) 具有满足 (e) 的 "latest" 标签的 <name>
  • g) 解决为 (a) 的 <git remote url>

如果指定注册表中已存在包名称和版本组合,则发布将失败。

一旦使用给定名称和版本发布了一个包,该特定名称和版本组合将永远无法再次使用,即使它已被 npm unpublish删除。

从 npm@5 开始,在发布期间,将在发布期间将 sha1sum 和带有 sha512sum 的完整性字段提交给注册表。 后续安装将使用支持的最强算法来验证下载。

与 --dry-run 类似,参见 npm pack,它计算出要包含的文件并将它们打包到一个 tarball 中以上传到注册表。

包中包含的文件

要查看将包含在你的包中的内容,请运行 npm pack --dry-run。 默认情况下包含所有文件,但以下情况除外:

  • 始终包含与包安装和分发相关的某些文件。 例如,package.jsonREADME.mdLICENSE 等。

  • 如果 package.json中有 "files" 列表,则仅包含指定的文件。 (如果指定了目录,那么它们将被递归遍历并包含它们的内容,遵循相同的忽略规则。)

  • 如果有 .gitignore 或 .npmignore 文件,则其中被忽略的文件和所有子目录都将从包中排除。 如果两个文件都存在,则忽略 .gitignore,只使用 .npmignore

    .npmignore 文件跟随 相同的模式规则为 .gitignore 文件

  • 如果文件与某些模式匹配,则永远不会包含它,除非明确添加到 package.json 中的 "files" 列表中,或者在 .npmignore 或 .gitignore文件中使用 ! 规则取消忽略。

  • 符号链接从不包含在 npm 包中。

4、npm query

4.1 使用语法

npm query <selector>

4.2 描述

npm query命令允许使用css选择器来检索依赖对象的数组。

4.3 示例

1、使用postinstall脚本查找所有依赖项并卸载它们

npm query ":attr(scripts, [postinstall])" | jq 'map(.name)|join("\n")' -r | xargs -I {} npm uninstall {}

2、找到所有git依赖项并解释谁需要它们

npm query ":type(git)" | jq 'map(.name)' | xargs -I {} npm why {}

3、查询所有依赖

npm query "*"

4、查询所有直接依赖

npm query ":root > *"

5、查询所有直接生产依赖

npm query(":root > .prod")

 6、查询所有直接开发依赖

npm query(":root > .dev")

7、查询jqeury 依赖

npm query "#jquery"

8、获取特定许可证(MIT或ISC)的依赖项

npm query "[license=MIT], [license=ISC]"

9、查找所有包含@ruyadorno作为贡献者的包

:attr(contributors, [email=ruyadorno@github.com])

以上只是一些常见的示例,具体可以参考npm官网

5、npm rebuild

5.1 使用语法

npm rebuild [<package-spec>] ...]别名: rb

5.2 描述

此命令在匹配的文件夹上运行npm build命令。当您安装新版本的节点,并且必须使用新的二进制文件重新编译所有C++插件时,这很有用。当使用--ignore-scripts 和--no-bin-links安装时,明确选择要构建的包并且/或链接bins也很有用。

如果提供了一个或多个包规范,则只会重建名称和版本与其中一个说明符匹配的包。

注意:使用npm-rebuild在本地系统或生产环境中重建所有npm软件包可能需要一些时间。 在某些情况下,使用npm-rebuild重建整个项目的操作甚至可能需要数小时。

6、npm repo

6.1 使用语法

npm repo [<pkgname> [<pkgname> ...]]

6.2 描述

该命令会在浏览器中打开包仓库页面。

此命令尝试猜测包的存储库 URL 的可能位置,然后尝试使用 --browser 配置 参数打开它。 如果没有提供包名,它将在当前文件夹中搜索 package.json 并使用 repository 属性。

例如打开jquery的仓库页面。

 7、npm restart

7.1 使用语法

npm restart [-- <args>]

7.2 描述

这将重新启动一个项目。 相当于运行 npm run-script restart

如果当前项目在 package.json 中指定了 "restart" 脚本,则将运行以下脚本:

  1. prerestart
  2. restart
  3. postrestart

如果它没有指定 "restart" 脚本,但它确实有 stop 和/或 start 脚本,则将运行以下脚本:

  1. prerestart
  2. prestop
  3. stop
  4. poststop
  5. prestart
  6. start
  7. poststart
  8. postrestart

8、npm root

8.1 使用语法

npm root

8.2 描述

将有效的 node_modules 文件夹打印到标准输出。

在使用 node_modules 文件夹执行操作的 shell 脚本中使用 npm 很有用。 例如:

#!/bin/bash
global_node_modules="$(npm root --global)"
echo "Global packages installed in: ${global_node_modules}"

9、npm run-script

9.1 使用语法

npm run-script <command> [-- <args>]别名: run, rum, urn

9.2 描述

这会从包的 "scripts" 对象运行任意命令。 如果没有提供 "command",它将列出可用的脚本。

run[-script] 由 test、start、restart 和 stop 命令使用,但也可以直接调用。 当包中的脚本被打印出来时,它们被分为生命周期(测试、启动、重启)和直接运行的脚本。

任何位置参数都会传递给指定的脚本。 使用 -- 传递以 - 为前缀的标志和选项,否则它们会被 npm 解析。

例如:

npm run test -- --grep="pattern"

参数只会传递给 npm run 之后指定的脚本,而不是任何 pre 或 post 脚本。

env 脚本是一个特殊的内置命令,可用于列出脚本在运行时可用的环境变量。 如果你的包中定义了 "env" 命令,它将优先于内置命令。

除了 shell 预先存在的 PATH 之外,npm run 还将 node_modules/.bin 添加到提供给脚本的 PATH 中。 本地安装的依赖提供的任何二进制文件都可以在没有 node_modules/.bin 前缀的情况下使用。 例如,如果你的包中 tap 上有一个 devDependency,你应该写:

"scripts": {"test": "tap test/*.js"}

代替

"scripts": {"test": "node_modules/.bin/tap test/*.js"}
运行脚本的实际 shell 取决于平台。 默认情况下,在类 Unix 系统上是/bin/sh命令,在 Windows 上是 cmd.exe。/bin/sh 所指的实际外壳也取决于系统。

脚本从包文件夹的根目录运行,无论调用 npm run 时当前工作目录是什么。 如果你希望脚本根据你所在的子目录使用不同的行为,你可以使用 INIT_CWD 环境变量,它包含你在运行 npm run 时所在的完整路径。

npm run 将 NODE 环境变量设置为执行 npm 的 node 可执行文件。

如果你尝试在没有 node_modules 目录的情况下运行脚本但它失败了,你将收到运行 npm install 的警告,以防你忘记了。

例如,我们会在package.json文件中,事先配置一些常用脚本,方便我们运行。

运行 npm run start 我们可以启动当前项目,可以指定命令是环境变量里面配置的,也可以指向node_modules中可运行的命令。

10、npm search

10.1 使用语法

npm search [search terms ...]别名: find, s, se

10.2 描述

在注册表中搜索与搜索词匹配的包。 npm search 通过包元数据对注册表中的所有文件执行线性、增量、按词法排序的搜索。 如果你的终端支持颜色,它将进一步高亮结果中的匹配项。 这可以通过配置项 color 禁用

此外,使用与更多搜索词配对的 --searchopts 和 --searchexclude 选项将包括和排除更多模式。 --searchopts 和标准搜索词的主要区别在于前者不会在输出中高亮结果,你可以使用它们进行更细粒度的过滤。 此外,你可以将这两者都添加到你的配置中以更改默认搜索过滤行为。

搜索还允许在搜索结果中定位维护者,方法是在他们的 npm 用户名前加上 =

如果一个词以 / 开头,那么它会被解释为一个正则表达式并支持标准的 JavaScript RegExp 语法。 在这种情况下,搜索将忽略尾随的 / 。 (请注意,你必须在大多数 shell 中转义或引用许多正则表达式字符。)

10.3 示例

我们尝试搜索一个包(jiang-isarray)如下所示:

npm search jiang-isarray

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

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

相关文章

PyQt5配置踩坑

安装步骤比较简单&#xff0c;这里只说一下我踩的坑&#xff0c;以及希望一些大佬可以给点建议。 一、QtDesigner 这个配置比较简单&#xff0c;直接就能用&#xff0c;我的配置如下图&#xff1a; C:\Users\lenovo\AppData\Roaming\Python\Python311\site-packages\qt5_app…

linux centos Python + Selenium+Chrome自动化测试环境搭建?

在 CentOS 系统上搭建 Python Selenium Chrome 自动化测试环境&#xff0c;需要执行以下步骤&#xff1a; 1、安装 Python CentOS 7 自带的 Python 版本较老&#xff0c;建议使用 EPEL 库或源码安装 Python 3。例如&#xff0c;使用 EPEL 库安装 Python 3&#xff1a; sud…

Selenium进行无界面爬虫开发

在网络爬虫开发中&#xff0c;利用Selenium进行无界面浏览器自动化是一种常见且强大的技术。无界面浏览器可以模拟真实用户的行为&#xff0c;解决动态加载页面和JavaScript渲染的问题&#xff0c;给爬虫带来了更大的便利。本文将为您介绍如何利用Selenium进行无界面浏览器自动…

A Survey and Framework of Cooperative Perception 论文阅读

论文链接 A Survey and Framework of Cooperative Perception: From Heterogeneous Singleton to Hierarchical Cooperation 0. Abstract 首次提出统一的 CP&#xff08;Cooperative Percepetion&#xff09; 框架回顾了基于不同类型传感器的 CP 系统与分类对节点结构&#x…

lua 中文字符的判断简介

一般在工作中会遇到中文字符的判断、截断、打码等需求&#xff0c;之前一直没有总结&#xff0c;虽然网上资料也多&#xff0c;今天在这里简单的总结一下。 1 .UTF-8简单描述 UTF-8 是 Unicode 的实现方式之一&#xff0c;其对应关系&#xff08;编码规则&#xff09;如下表所…

【大数据】Apache NiFi 助力数据处理及分发

Apache NiFi 助力数据处理及分发 1.什么是 NiFi &#xff1f;2.NiFi 的核心概念3.NiFi 的架构4.NiFi 的性能预期和特点5.NiFi 关键特性的高级概览 1.什么是 NiFi &#xff1f; 简单的说&#xff0c;NiFi 就是为了解决不同系统间数据自动流通问题而建立的。虽然 dataflow 这个术…

【Linux】 rm命令使用

作为一个程序员 我们经常用到rm -rf * 或者rm -rf XXX 。但是rm -rf 是什么意思不是很清楚&#xff0c;咱们一起来学习一下吧。 rm&#xff08;英文全拼&#xff1a;remove&#xff09;命令用于删除一个文件或者目录。 rm 命令 -Linux手册页 著者 由保罗鲁宾、大卫麦肯齐、理…

Qt的WebEngineView加载网页时出现Error: WebGL is not supported

1.背景 当我在qml中使用WebEngineView加载一个网页时&#xff0c;出现以下错误&#xff1a; Error: WebGL is not supported 2.解决方案 其实这个问题在Qt的帮助文档中已经提及了解决办法&#xff1a; 因此&#xff0c;可以按照下面的步骤操作一下&#xff1a; 2.1.pro文件 …

Unity中Shader光强与环境色

文章目录 前言一、实现下图中的小球接受环境光照实现思路&#xff1a;1、在Pass中使用前向渲染模式2、使用系统变量 _LightColor0 获取场景中的主平行灯 二、返回环境中主环境光的rgb固定a(亮度)&#xff0c;小球亮度还随之改变的原因三、获取Unity中的环境光的颜色1、Color模式…

练[SUCTF 2019]CheckIn

[SUCTF 2019]CheckIn 文章目录 [SUCTF 2019]CheckIn掌握知识解题思路关键paylaod 掌握知识 ​ .user.ini文件上传利用–需要上传目录有一个php文件(index.php)&#xff0c;文件头绕过&#xff0c;文件内容<&#xff1f;检测 解题思路 打开题目链接&#xff0c;发现又是一…

模块化编程+LCD1602调试工具——“51单片机”

各位CSDN的uu们你们好呀&#xff0c;小雅兰又来啦&#xff0c;刚刚学完静态数码管显示和动态数码管显示&#xff0c;感觉真不错呢&#xff0c;下面&#xff0c;小雅兰就要开始学习模块化编程以及LCD1602调试工具的知识了&#xff0c;让我们进入51单片机的世界吧&#xff01;&am…

Zabbix配置监控文件系统可用空间小于30GB自动告警

一、创建监控项 二、配置监控项 #输入名称–>键值点击选择 #找到磁盘容量点击 注&#xff1a; 1、vfs 该键值用于检测磁盘剩余空间&#xff0c;zabbix 内置了非常多的键值可以选着使用 2、单位B不需要修改&#xff0c;后期图表中单位和G拼接起来就是GB 3、更新时间 10S…

❋JQuery的快速入门2 jq鼠标滚轮

onmousewheelscript当鼠标滚轮正在被滚动时运行的脚本。 主要是利用top与left进行上下移动和左右移动 【使用获取的角度正值还是负值&#xff0c;判断是向上还是上下滚动】 $(element).on("mousewheel", function(event){var de event.originalEvent.deltaY; //需要…

基于springboot实现汽车租赁管理系统项目演示【项目源码+论文说明】分享

基于springboot实现汽车租赁管理系统项目演示 摘要 随着社会的发展&#xff0c;计算机的优势和普及使得汽车租赁系统的开发成为必需。汽车租赁系统主要是借助计算机&#xff0c;通过对汽车租赁信息等信息进行管理。减少管理员的工作&#xff0c;同时也方便广大用户对个人所需汽…

异常:找不到匹配的key exchange算法

目录 问题描述原因分析解决方案 问题描述 PC 操作系统&#xff1a;Windows 10 企业版 LTSC PC 异常软件&#xff1a;XshellPortable 4(Build 0127) PC 正常软件&#xff1a;PuTTY Release 0.74、MobaXterm_Personal_23.1 服务器操作系统&#xff1a;OpenEuler 22.03 (LTS-SP2)…

树的基本概念及二叉树

目录 一、树的基本概念 &#xff08;1&#xff09;树的结点 &#xff08;2&#xff09;度 &#xff08;3&#xff09;结点层次 &#xff08;4&#xff09;树的高度 树的特点&#xff1a; 二、二叉树 &#xff08;1&#xff09;满二叉树 &#xff08;2&#xff09;完…

JVM(八股文)

目录 一、JVM简介 二、JVM中的内存区域划分 三、JVM加载 1.类加载 1.1 加载 1.2 验证 1.3 准备 1.4 解析 1.5 初始 1.6 总结 2.双亲委派模型 四、JVM 垃圾回收&#xff08;GC&#xff09; 1.确认垃圾 1.1 引用计数 1.2 可达性分析&#xff08;Java 采用的方案&a…

Hudi 系列-基础概念-索引机制

目录 前言问题作用减少开销怎么理解数据变更基础 类型全局索引FlinkSpark 总结 前言 Hudi 系列文章在这个这里查看 https://github.com/leosanqing/big-data-study 索引(Index)是 Hudi 最重要的特性之一,也是区别于之前传统数仓 Hive 的重要特点, 是实现 Time Travel, Update…

抢先知:公抓抓 信息挖掘工具

随着经济全球化进程的加速&#xff0c;企业在不断发展和壮大&#xff0c;同时也在不断地适应市场的变化。在这个过程中&#xff0c;企业信息的及时获取和掌握变得至关重要。那么&#xff0c;最新企业信息哪里找呢&#xff1f;在这里介绍几个路径&#xff0c;可以参考&#xff0…

ARM:使用汇编完成三个灯流水亮灭

1.汇编源代码 .text .global _start _start: 设置GPIOF寄存器的时钟使能LDR R0,0X50000A28LDR R1,[R0]ORR R1,R1,#(0x1<<5)STR R1,[R0]设置GPIOE寄存器的时钟使能LDR R0,0X50000A28LDR R1,[R0] 从r0为起始地址的4字节数据取出放在R1ORR R1,R1,#(0x1<<4) 第4位设…