NPM 常用命令(十)

news2024/11/24 3:10:31

目录

 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.coloradmin.cn/o/1071617.html

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

相关文章

基于卷积神经网络的图像识别-案例实施1

案例描述 学习如何搭建CNN卷积神经网络&#xff0c;训练cifar-10数据&#xff0c;识别图片中的内容。 案例分析 cifar-10是由Hinton的学生Alex Krizhevsky和Ilya Sutskever整理的一个用于识别普适物体的小型数据集。一共包含 10个类别的 RGB 彩色图 片&#xff1a;飞机&…

vscode的窗口下拉显示行数不够

这是为了减少程序的空间占用而存在的一个设置。设置一下即可。 设置方法 在左上角文件&#xff0c;个人设置&#xff0c;设置中&#xff0c;&#xff08;或者用Ctrl&#xff0c;打开&#xff09; 输入terminal&#xff0c;找到bell duration&#xff0c;设置成1000。 参考…

Unit3 使用 uniCloud 制作书籍管理移动端应用项目

Unit3 使用 uniCloud 制作书籍管理移动端应用项目 1 构建项目并关联云服务空间2 为项目准备数据库表3 schema2Code4 遇到了错误5 对 "addtime" 字段对应的前端组件进行修改6 首次运行 1 构建项目并关联云服务空间 uniCloud 为开发人员提供了“阿里云”和“腾讯云”两…

07. 机器学习入门3 - 了解K-means

Hi&#xff0c;你好。我是茶桁。 我们在机器学习入门已经学习了两节课&#xff0c;分别接触了动态规划&#xff0c;机器学习的背景&#xff0c;特征向量以及梯度下降。 本节课&#xff0c;我们在深入的学习一点其他的知识&#xff0c;我们来看看K-means. 当然&#xff0c;在…

服务器数据恢复-VMWARE ESX SERVER虚拟机数据恢复案例

服务器数据恢复环境&#xff1a; 几台VMware ESX SERVER共享一台某品牌存储&#xff0c;共有几十组虚拟机。 服务器故障&#xff1a; 虚拟机在工作过程中突然被发现不可用&#xff0c;管理员将设备进行了重启&#xff0c;重启后虚拟机依然不可用&#xff0c;虚拟磁盘丢失&#…

postman测试文件上传接口教程

postman是一个很好的接口测试软件&#xff0c;有时候接口是Get请求方式的&#xff0c;肯定在浏览器都可以测了&#xff0c;不过对于比较规范的RestFul接口&#xff0c;限定了只能post请求的&#xff0c;那你只能通过工具来测了&#xff0c;浏览器只能支持get请求的接口&#xf…

用PyTorch轻松实现二分类:逻辑回归入门

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

用ffmpeg删除视频的音轨,让视频静音

ffmpeg -i ~/video/video.mp4 -an -vcodec copy ~/video/muteVideo.mp4 删除以后我们查看muteVideo的文件信息&#xff0c;只有一个Stream&#xff1a;video信息了。 再对比看一下video.mp4的信息&#xff0c;是有两个Stream信息&#xff0c;一个video&#xff0c;一个audio。…

gitlab登录出现的Invalid login or password问题

前提 我是在一个项目里创建的gitlab账号&#xff0c;想在别的项目里登录或者官网登录发现怎么都登陆不上 原因 在GitLab中&#xff0c;有两种不同的账号类型&#xff1a;项目账号和个人账号&#xff08;官网账号&#xff09;。 项目账号&#xff1a;项目账号是在特定GitLab…

竞赛 深度学习 opencv python 实现中国交通标志识别

文章目录 0 前言1 yolov5实现中国交通标志检测2.算法原理2.1 算法简介2.2网络架构2.3 关键代码 3 数据集处理3.1 VOC格式介绍3.2 将中国交通标志检测数据集CCTSDB数据转换成VOC数据格式3.3 手动标注数据集 4 模型训练5 实现效果5.1 视频效果 6 最后 0 前言 &#x1f525; 优质…

竞赛选题 深度学习 python opencv 火焰检测识别 火灾检测

文章目录 0 前言1 基于YOLO的火焰检测与识别2 课题背景3 卷积神经网络3.1 卷积层3.2 池化层3.3 激活函数&#xff1a;3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV54.1 网络架构图4.2 输入端4.3 基准网络4.4 Neck网络4.5 Head输出层 5 数据集准备5.1 数…

vscode package.json文件开头的{总是提升警告

警告如下 Problems loading reference https://json.schemastore.org/stylelintrc.json: Unable to load schema from https://json.schemastore.org/stylelintrc.json: read ECONNRESET. 解决如下 在设置&#xff08;settings.json&#xff09;里 新增一条属性 "ht…

0501 货仓选址 【中位数 距离和的最小值】

0501 货仓选址 【中位数 距离和的最小值】 描述 在一条数轴上有N家商店&#xff0c;它们的坐标分别为 A[1]~A[N]。现在需要在数轴上建立一家货仓&#xff0c;每天清晨&#xff0c;从货仓到每家商店都要运送一车商品。为了提高效率&#xff0c;求把货仓建在何处&#xff0c;可以…

git+码云提交PR流程记录

前提条件&#xff1a;注册码云账号&#xff0c;本地安装git 如果不知道怎么注册和安装&#xff0c;可以参考gitgitee入门教程&#xff08;https://bbs.huaweicloud.com/forum/thread-55222-1-1.html&#xff09; 登录自己的码云账号 登陆了之后&#xff0c;在码云上打开目标项…

k8s-8 ingress-nginx

nodeport 默认端口 nodeport默认端口是30000-32767&#xff0c;超出会报错 添加如下参数&#xff0c;端口范围可以自定义 externalname ingress-nginx 通过一个外部的vip 地址 访问到集群内的多个service 一种全局的、为了代理不同后端 Service 而设置的负载均衡服务&…

照片处理软件Lightroom Classic mac中文版功能介绍(Lrc2021)

Lightroom Classic 2022 mac是一款桌面编辑工具&#xff0c;lrc2021 mac包括提亮颜色、使灰暗的摄影更加生动、删除瑕疵、将弯曲的画面拉直等。您可以在电脑桌面上轻松整理所有照片。使用Lightroom Classic&#xff0c; 轻松整理编辑照片&#xff0c;为您的作品锦上添花。 Ligh…

Vega Prime入门教程11:软件界面

本文首发于&#xff1a;Vega Prime入门教程11&#xff1a;软件界面 Vega Prime工具包中&#xff0c;包含了一个重要的编辑器Lynx prime(以后简称LP)&#xff0c;它为VP提供一个人机交互界面。 启动 打开桌面上的快捷方式 软件会自动打开模板工程 界面构成 LynX Prime用户界…

阿加犀AI应用案例征集活动 持续进行中!

当下&#xff0c;人工智能正经历着迅猛的技术进步和广泛的应用拓展&#xff0c;边缘端计算运行也成为了一个重要的趋势。边缘计算通过降低延迟、节省带宽、增强隐私保护、提高系统可靠性等特性&#xff0c;为AI和IoT应用提供了强大的支持&#xff0c;使得智能应用更加灵活、高效…

通信与网络及软件工具的使用心得与记录

在当今的信息时代&#xff0c;通信工程和网络工具已经成为我们工作和生活中不可或缺的一部分。为了更好地利用这些工具&#xff0c;我们需要了解它们的基本原理和使用方法。本文将为您详细介绍一些重要的通信工程和网络工具&#xff0c;以及它们在实际应用中的使用心得和笔记。…

阶段六-Day01-Linux入门

一、 Linux简介 1. 概念 Linux是一款操作系统。和Windows操作系统类似。 2. Linux操作系统的优势 2.1 稳定性 Linux采取了许多安全技术措施&#xff0c;其中有对读、写进行权限控制、审计跟踪、核心授权等技术&#xff0c;这些都为安全提供了保障。 据说Linux系统可以十年…