NPM 命令备忘单

NPM 简介

Node Package Manager (NPM) 是 Node.js 环境中不可或缺的命令行工具,充当包管理器来安装、更新和管理 Node.js 应用程序的库、包和模块。对于每个 Node.js 开发人员来说,无论他们的经验水平如何,它都是一个关键工具。

NPM 的主要目的是管理 Node.js 项目中常见的外部库和依赖项。除此之外,它还有助于共享和分发代码、运行脚本以及创建新项目,展示了其在 Node.js 生态系统中的多功能性。

本指南旨在成为一份备忘单,一个快速参考,您可以反复查看以了解并充分利用 NPM 的特性和功能。

NPM 及其在 Node.js 中的重要性

NPM 将您的应用程序与全球开发者社区联系起来,提供对大量软件包和库的访问。这使得能够利用集体解决方案和专业知识,而不是从头开始。

NPM 的优势在于其简单性和效率,简化了应用程序所需包的管理,根据项目的范围,包的数量从几个到数百个不等。声明您需要什么,NPM 会处理剩下的事情——根据需要获取、安装和更新包。

了解 NPM 命令

NPM 命令是您可以使用 NPM 工具执行的操作。这些被输入到命令行中,并且通常后跟一个或多个参数。例如,在命令中npm install express,“install”是命令,“express”是参数。

有许多可用的 NPM 命令,每个命令都旨在执行特定操作。虽然了解和理解所有这些内容是有益的,但在实践中,您会发现其中一些内容的使用频率比其他内容要高得多。这些是我们将在本指南中重点关注的内容。

下表总结了最常用的 NPM 命令以及它们的用途的简要说明:

命令描述
npm init初始化一个新的NPM项目并package.json在目录中创建一个新文件。
npm install安装文件中列出的所有依赖项package.json
npm install [package]安装特定包并将其添加到文件中的依赖项列表中package.json
npm install [package] --save-dev安装特定包作为开发依赖项。
npm uninstall [package]从节点模块和文件中删除特定包package.json
npm update将所有包更新到最新版本,如文件中的版本范围所指定package.json
npm update [package]将特定包更新到最新版本。
npm ls显示当前项目的依赖关系树,显示所有已安装的包及其依赖关系。
npm run [script]scripts运行文件部分中定义的脚本package.json
npm testscripts运行文件部分中定义的测试脚本package.json
npm publish将包发布到 NPM 注册表。
npm version [update_type]package.json根据指定的更新类型(主要、次要或补丁)更新文件中的版本号。
npm audit检查已安装软件包中的已知漏洞并提出修复建议。
npm cache clean --force清除 NPM 缓存,通常用于解决安装包的问题。
npm outdated检查是否有过时的软件包。
npm root显示存储包的根目录。
npm config get prefix获取全局包的安装目录。

该表提供了这些命令及其功能的高级概述,但每个命令的深度和复杂性都比此处介绍的要深。了解每个命令的复杂性对于有效且高效地使用 NPM 至关重要。

深入研究 NPM 命令

在下面的部分中,我们将更详细地了解每个命令,扩展它们的用途、语法,并提供如何使用它们的示例。

npm init

npm init是用于创建新 NPM 项目的命令。当您运行此命令时,NPM 将提示您提供有关项目的一些信息,例如项目名称、版本、描述、主文件、测试命令、Git 存储库、关键字、作者和许可证。

然后,使用这些详细信息在当前目录中创建一个package.json文件,该文件用作项目的清单文件。该文件包含有关您的项目的元数据并列出其依赖项,允许 NPM 识别需要安装哪些软件包才能使您的项目正常运行。

您还可以使用默认值npm init -y自动填写文件。package.json当您想要快速设置项目而不提示输入时,这非常方便。

用法示例:

$ npm init

npm install

npm install是最常用的 NPM 命令之一。它用于安装您的项目所依赖的包。此命令读取package.json文件以识别项目的依赖项并安装它们。

如果您在命令后指定包名称npm install,NPM 将安装该特定包。默认情况下,它会安装最新版本的软件包。但是,如果您需要特定版本的包,您还可以指定版本号、标签或版本范围。

用法示例:

$ npm install
$ npm install express
$ npm install express@4.17.1
$ npm install express@latest

npm install [package] --save-dev

虽然该npm install [package]命令将包安装为生产依赖项,但有时您需要安装仅开发所需的包。例如,测试库、转译器和 linter 都是通常仅在开发过程中而不是在生产中需要的包。

这就是npm install [package] --save-dev命令的用武之地。它安装指定的包并将其添加到文件的“devDependency”部分package.json,表明它只是一个开发依赖项。

用法示例:

$ npm install jest --save-dev

npm unistall

正如您可以使用 NPM 安装软件包一样,您也可以使用命令npm uninstall后跟要删除的软件包的名称来删除它们。

此命令从 node_modules 目录中删除指定的包,并更新package.jsonpackage-lock.json文件以反映包的删除。

用法示例:

$ npm update
$ npm update express

npm update

随着时间的推移,您在项目中使用的软件包可能会由其维护者进行更新,以包含新功能、修复错误或修补安全漏洞。保持软件包更新以便从这些更改中受益非常重要。

npm update命令可以帮助您执行此操作。当不带任何参数运行时,此命令会检查文件中列出的所有包package.json,并根据定义的范围将它们更新到最新版本。

您还可以通过在命令后指定包名称来将特定包更新到最新版本npm update

用法示例:

$ npm ls
$ npm ls express

npm LS

npm ls命令用于列出已安装的软件包及其依赖项。当您想要查看已安装的软件包或其依赖项的版本时,此命令特别有用。

默认情况下,npm ls显示当前项目的依赖关系树。但是,您可以指定包名称以查看该包的版本及其依赖项。

用法示例:

$ npm ls
$ npm ls express

npm run [script]

npm run命令用于执行文件scripts部分中定义的脚本package.json。这可以包括用于构建应用程序、运行测试、启动应用程序等的脚本。

要运行脚本,您只需在命令后面加上npm run要运行的脚本的名称即可。

用法示例:

$ npm run start
$ npm run test

npm test

npm test命令是 的快捷方式npm run test。它用于运行scripts文件部分中定义的测试脚本package.json

用法示例:

$ npm test

npm publish

如果您开发了一个 Node.js 包并希望与其他人共享,您可以使用该npm publish命令将其发布到 NPM 注册表。一旦您的软件包发布,其他人就可以使用该npm install命令安装它。

在发布包之前,您需要在 NPM 网站上创建一个帐户并使用命令登录您的帐户npm login

用法示例:

$ npm publish

npm version [update_type]

npm version命令用于更新软件包的版本号。此命令更新文件中的版本号package.json,并使用更新的版本号创建一个新的 Git 标记。

您需要在npm version命令后指定更新类型,可以是“补丁”、“次要”或“主要”,具体取决于新版本中所做更改的性质。

用法示例:

$ npm version patch
$ npm version minor
$ npm version major

npm audit

npm audit命令用于识别项目依赖项中已知的安全漏洞。当您运行此命令时,NPM 会package.json根据 Node Security Platform 数据库检查文件中的包以查找漏洞。

npm audit命令不仅可以识别漏洞,还可以提供有关每个漏洞的详细信息,并建议修复这些漏洞的命令。

用法示例:

$ npm audit

npm cache clean --force

npm cache clean --force命令用于清除NPM缓存。缓存是数据的存储,以便将来可以再次使用。 NPM 使用缓存来存储已安装的包,因此在需要时不需要再次获取它们。

清除缓存可以帮助解决安装或更新软件包时的一些问题。

用法示例:

$ npm cache clean --force

npm outdated

npm outdated命令用于检查过期的软件包。当您运行此命令时,NPM 会检查您文件中的包package.json,并将您已安装的版本与 NPM 注册表上可用的最新版本进行比较。

如果有任何过时的软件包,此命令将列出它们以及您拥有的当前版本、可用的最新版本以及文件中定义的版本package.json

用法示例:

$ npm outdated

npm root

npm root命令用于查找安装包的根目录。如果您需要知道软件包的安装位置或者您遇到软件包问题并需要检查其文件,这会很有用。

用法示例:

$ npm root

npm config get prefix

npm config get prefix命令用于获取全局包的安装目录。这通常发生 /usr/local 在 Unix 系统和C:\Users\<username>\AppData\Roaming\npm Windows 上。

用法示例:

$ npm config get prefix

本综合指南深入概述了最常用的 NPM 命令。无论您是 Node.js 新手还是经验丰富的开发人员,对这些命令的深入理解都可以让您的开发过程更加高效和愉快。

NPM 是一个强大的工具,提供了广泛的功能。了解如何利用这些功能可以极大地增强您的 Node.js 开发体验。因此,请使用本指南作为参考来了解并充分利用 NPM 的特性和功能。

请记住,官方NPM 文档始终提供更详细的信息,并帮助您探索本指南中未涵盖的其他命令和功能。

有了这些命令,您就可以管理 Node.js 项目的依赖项并确保应用程序顺利运行。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

校园视频监控系统的设计与实现(论文+源码)_kaic

摘 要 本毕业设计的内容是设计并且实现一个基于java技术的校园视频监控系统。它是在Windows下&#xff0c;以MYSQL为数据库开发平台&#xff0c;java技术和Tomcat网络信息服务作为应用服务器。校园视频监控系统的功能已基本实现&#xff0c;主要实现个人中心&#xff0c;用户…

AI跟踪报道第37期-新加坡内哥谈技术-本周AI新闻: 人工智能竞赛:科技巨头的疯狂角逐!

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

String类中常见面试题

1.string类属于基本类型吗&#xff1f; string类不是基本类型&#xff1b;它属于引用数据类型 2.操作字符串的类有哪些?有什么区别&#xff1f; 有三种&#xff1a;string,stringBuilder,stringBuffer 区别&#xff1a; String:不可变类&#xff0c;字符串一旦被创建就不能…

OpenCV轻松入门(六)——简单图片处理【马赛克、毛玻璃、浮雕效果】

马赛克效果 马赛克指现行广为使用的一种图像&#xff08;视频&#xff09;处理手段&#xff0c;此手段将影像特定区域的色阶细节劣化并造成色块打乱的效果&#xff0c;因为这种模糊看上去有一个个的小格子组成&#xff0c;便形象的称这种画面为马赛克。其目的通常是使之无法辨…

linux 部署安装mongodb教程

现在去官网下载mongodb的tar包,在本地创建文件夹 cd /home wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.17.tgz tar -zxvf mongodb-linux-x86_64-rhel70-4.2.17.tgz mv mongodb-linux-x86_64-rhel70-4.2.17 mongodb cd /home/mongodb mkdir log t…

window10轻松使用k8s

Docker Desktop安装篇 1、win10安装 1、下载安装包 https://www.docker.com/products/docker-desktop/ 官网下载安装包 2、配置win10支持虚拟化 不勾选Hyper-V&#xff0c;容易出错 3、安装WSL配置window支持linux Windows Subsystem for Linux (WSL) 安装 Linux 子系统&am…

腐蚀Rust 服务端搭建架设个人社区服务器Windows教程

腐蚀Rust 服务端搭建架设个人社区服务器Windows教程 大家好我是艾西&#xff0c;一个做服务器租用的网络架构师也是游戏热爱者。最近在steam发现rust腐蚀自建的服务器以及玩家还是非常多的&#xff0c;那么作为服务器供应商对这商机肯定是不会放过的哈哈哈&#xff01; 艾西这…

嵌入式实时操作系统的调度机制与优化

大家好&#xff0c;今天给大家介绍嵌入式实时操作系统的调度机制与优化&#xff0c;文章末尾附有分享大家一个资料包&#xff0c;差不多150多G。里面学习内容、面经、项目都比较新也比较全&#xff01;可进群免费领取。 嵌入式实时操作系统的调度机制与优化 一、引言 嵌入式实…

DonkeyDocker-v1-0渗透思路

MY_BLOG https://xyaxxya.github.io/2024/04/13/DonkeyDocker-v1-0%E6%B8%97%E9%80%8F%E6%80%9D%E8%B7%AF/ date: 2024-04-13 19:15:10 tags: 内网渗透Dockerfile categories: 内网渗透vulnhub 靶机下载地址 https://www.vulnhub.com/entry/donkeydocker-1,189/ 靶机IP&a…

[Java、Android面试]_18_详解Handler机制 常见handler面试题(非常重要,非常高频!!)

本人今年参加了很多面试&#xff0c;也有幸拿到了一些大厂的offer&#xff0c;整理了众多面试资料&#xff0c;后续还会分享众多面试资料。 整理成了面试系列&#xff0c;由于时间有限&#xff0c;每天整理一点&#xff0c;后续会陆续分享出来&#xff0c;感兴趣的朋友可关注收…

Java基础-知识点04(面试|学习)

Java基础-知识点04 Object类wait和notify需要在什么地方使用&#xff1f;说明 toString() 方法的作用和重写时的注意事项。toString() 方法在实际开发中的应用场景和作用。 continue、break 和 return 的区别1、continue&#xff1a;2、break&#xff1a;3、return&#xff1a;…

plsql developer 一键格式化sql/美化sql

PL/SQL 格式化工具 以 Oracle SQL Developer 为例&#xff0c;使用一键格式化的步骤如下&#xff1a; 打开 Oracle SQL Developer。在“文件”菜单中&#xff0c;选择“打开文件”&#xff0c;然后选择你的 PL/SQL 文件。打开文件后&#xff0c;你可以通过右键菜单选择“格式…

常用接口测试工具/免费api

一 接口编辑文档 常用的接口文档编写apipost 二 免费接口测试 api 1. thecat 含有&#xff1a; The Cat API - Cat as a Service The Cat API 2. public-apis 进入页面往下拉 三 常用接口测试工具 postman 四 常用接口性能测试工具 Jmeter&#xff0c;loadrunner

STK与matlab交互 Astrogator模块 (11)

一、背景知识 前面由于定轨的大作业&#xff0c;关于Astrogator模块的学习有所滞后&#xff0c;在本节将重新聚焦Astrogator模块&#xff0c;在本节中&#xff0c;首先解决的问题是已知两个卫星的轨道六根数&#xff0c;求解其中某一颗卫星LVLH坐标下另一颗卫星的位置速度。这…

C语言中的编译和链接

系列文章目录 文章目录 ​编辑 系列文章目录 文章目录 前言 一、 翻译环境和运行环境 二、 翻译环境 2.1 编译 2.1.1 预处理 2.1.2 编译 2.1.2.1 词法分析 : 2.1.2.2 语法分析 2.1.2.3 语义分析 2.1.3 汇编 2.2 链接 三、运行环境 前言 在我们平常的写代码时&#xff0c;我们很…

ARM内核的CPU架构模型

1.引言 程序员在编码的时候&#xff0c;如果想有进一步的提升&#xff0c;我认为还是要深入底层理解程序运行原理才好。最近看了一些ARM架构的讲解&#xff0c;总结了如下。虽然是以ARM为原型画的图形&#xff0c;但是对于C和C的编程&#xff0c;还是有一些参考价值的。 2. AR…

SAP HCM GET pernr无法获取到数据二

今天遇到一个比较奇怪的问题&#xff0c;PA30能查到员工主数据&#xff0c;任何信息类型也没有错误&#xff0c;但是核算工资的时候发现无法找到此人。 但是核算工资无法核算 断点到逻辑数据get pernr&#xff0c;也不会进入断点 查看0000数据有间隔 具体错误的代码位置如下&am…

rspack 使用构建vue3脚手架

基于 Rust 的高性能 Web 构建工具。rspack 主要适配 webpack 生态&#xff0c;对于绝大多数 webpack 工具库都是支持的。 启动速度快&#xff1b;增量热更新快。兼容 webpack 生态&#xff1b;内置了 ts、jsx、css、css modules 等开箱即用。生产优化&#xff0c;tree shaking…

【蓝桥杯】第十五届填空题a.握手问题

题解&#xff1a; 根据问题描述&#xff0c;总共有 50 人参加会议&#xff0c;每个人除了与自己以外的其他所有人握手一次。但有 7 个人彼此之间没有进行握手&#xff0c;而与其他所有人都进行了握手。 首先&#xff0c;计算所有人进行握手的总次数&#xff1a; 总人数为 50 …

计算机服务器中了360后缀勒索病毒怎么办?360后缀勒索病毒解密步骤

网络技术的不断应用与发展&#xff0c;为企业的生产运营提供了极大便利&#xff0c;利用网络可以开展各项工作业务&#xff0c;可以大大提高企业的生产效率&#xff0c;然而&#xff0c;网络是一把双刃剑&#xff0c;在为企业提供便利的同时&#xff0c;也为企业的数据安全带来…