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 项目的依赖项并确保应用程序顺利运行。

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

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

相关文章

pom.xml显示灰色并被划线

在使用 IDEA 进行开发的过程中&#xff0c;有时候会遇到 pom.xml 显示灰色并被划线的情况&#xff0c;如下图&#xff1a; 这一般是因为该文件被 Maven 忽略导致的&#xff0c;可以进行如下操作恢复&#xff1a; 设置保存后&#xff0c;可以看到 pom.xml 恢复了正常&#xff1a…

计算机网络书籍--《网络是怎样连接的》阅读笔记

第一章 浏览器生成信息 1.1 生成HTTP请求信息 1.1.1 URL Uniform Resource Locator, 统一资源定位符。就是网址。 不同的URL能够用来判断使用哪种功能来访问相应的数据&#xff0c;比如访问Web服务器就要用”http:”&#xff0c;而访问FTP服务器用”ftp:”。 FTP&#xff…

支付系统核心逻辑 — — 状态机(JavaGolang版本)

支付系统核心逻辑 — — 状态机 代码地址&#xff1a;https://github.com/ziyifast/ziyifast-code_instruction/tree/main/state_machine_demo 1 概念&#xff1a;FSM&#xff08;有限状态机&#xff09;&#xff0c;模式之间转换 状态机&#xff0c;也叫有限状态机&#xff08…

基于OptiTrack跟踪系统和Turtlebot机器人的视觉SLAM定位评估

本文旨在介绍使用OptiTrack光学跟踪系统和Turtlebot机器人进行视觉SLAM定位实验的详细流程&#xff0c;包括实验平台搭建过程、数据处理过程以及SLAM估计评估方法。由于涉及知识较多&#xff0c;部分内容只给出了相关参考博文链接。 1 实验平台搭建 实验平台包括OptiTrack光学…

Golang | Leetcode Golang题解之第26题删除有序数组中的重复项

题目&#xff1a; 题解&#xff1a; func removeDuplicates(nums []int) int {n : len(nums)if n 0 {return 0}slow : 1for fast : 1; fast < n; fast {if nums[fast] ! nums[fast-1] {nums[slow] nums[fast]slow}}return slow }

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…

嵌入式sqlite3交叉编译移植

操作系统:Ubuntu20.04 下载sqlite3代码,下载版本3.30.00 wget https://www.sqlite.org/2019/sqlite-amalgamation-3300000.zip 或者https://download.csdn.net/download/benico/89127678 为什么下载amalgamation版本,不下载autoconf版本? 根据我的编译实验,同版本sql…

python爬取京东商品信息与可视化

项目介绍&#xff1a;使用python爬取京东电商拿到价格、店铺、链接、销量并做可视化 ........................................................................................................................................................... 项目介绍效果展示全部…

数据库系统概论(超详解!!!)第四节 数据库安全性

问题的提出&#xff1a; 数据库的一大特点是数据可以共享 数据共享必然带来数据库的安全性问题 数据库系统中的数据共享不能是无条件的共享。 1.数据库的安全概述 数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏 。 系统安全保护措施是否有效…

C语言:约瑟夫环问题详解

前言 哈喽&#xff0c;宝子们&#xff01;本期为大家带来一道C语言循环链表的经典算法题&#xff08;约瑟夫环&#xff09;。 目录 1.什么是约瑟夫环2.解决方案思路3.创建链表头结点4.创建循环链表5.删除链表6.完整代码实现 1.什么是约瑟夫环 据说著名历史学家Josephus有过以下…

C/C++基础----判断和循环

判断 if-elseif-else判断 语句&#xff1a; 条件使用之前的逻辑运算符或者关系运算符 if(条件1){条件1成立时内容 }else if(条件2){条件2成立时内容 }else{所有条件不成立时内容 }#include <iostream>using namespace std;int main() {int age 10;if (age > 18) {c…

【C Hash Map from Redis】

将Redis源码中的哈希表底层逻辑提取&#xff0c;并进行最小demo级测试将对应文件抽出&#xff0c;通过宏替换等方式保证源码编译通过main.c编写测试demo &#xff0c;注册哈希函数和值比较函数&#xff08;必选项&#xff09; /* Hash Tables Implementation.** This file imp…

Java 原生代码获取服务器的网卡 Mac 地址、CPU序列号、主板序列号

1、概述 Java 可以获取服务器的网卡 Mac 地址、CPU 序列号、主板序列号等信息&#xff0c;用来做一些软件授权验证、设备管理等场景。 2、代码实现 package com.study.util;import java.net.InetAddress; import java.net.NetworkInterface; import java.util.Scanner;/*** …

elasticsearch7安全配置--最低安全等级,用户名密码

上一篇博客在centos7上安装了elasticsearch7 接下来对elasticsearch进行安全方面的配置 minimal security 最低安全等级&#xff0c;用户名密码 首先开启xpack vim config/elasticsearch.yml xpack.security.enabled: true由于我是单机配置的&#xff0c;还加了如下配置 d…

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

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

从 iPhone 上的短信中恢复已删除的图片的可靠方法

您可能在浏览消息聊天时不小心删除了一些文本和照片。事实上&#xff0c;如果这些消息对你来说意义重大&#xff0c;那对你来说可能会很麻烦。当发生意外情况时&#xff0c;您可能不想恢复整个聊天&#xff0c;而是恢复其中的附件。 好了&#xff0c;这篇文章主要是讲如何灵活…

Towards Street-Level Client-Independent IP Geolocation(2011年)(第二部分)

被引次数:306 Wang Y, Burgener D, Flores M, et al. Towards {Street-Level}{Client-Independent}{IP} Geolocation[C]//8th USENIX Symposium on Networked Systems Design and Implementation (NSDI 11). 2011. 接着Towards Street-Level Client-Independent IP Geolocati…

【数据恢复软件】:Magnet AXIOM V8.0

Magnet AXIOM V8.0重大更新 1、全新的UI设计 2、更快的相应速度 3、补全工件分析 4、支持亚马逊AWS云数据&#xff08; 获取同一帐户或安全帐户上下文中的快照。 支持Windows实例、加密卷和超过1 TB的卷、具有多个卷的实例等等&#xff01; &#xff09; 5、Bug修复 6、AI支持…

AI虽强,搜索引擎仍不可或缺

AI 领域正以前所未有的速度发展&#xff0c;大模型的发布变得愈发频繁&#xff0c;模型的规模也在持续扩大。如今&#xff0c;大模型的起点已经攀升至数十亿参数&#xff08;数十 B&#xff0c;B 是 Billion 的简写&#xff0c;10 亿&#xff09;&#xff0c;其功能之广泛&…

从零实现诗词GPT大模型:数据集介绍和预处理

本章将介绍该系列文章中使用的数据集&#xff0c;并且编写预处理代码&#xff0c;处理成咱们需要的格式。 一、数据集介绍 咱们使用的数据集名称是chinese-poetry&#xff0c;是一个在github上开源的中文诗词数据集&#xff0c;根据仓库中readme.md中的介绍&#xff0c;该数据…