npm包管理器

一、什么是npm

Npm(Node Package Manager)是一个用于管理和共享JavaScript代码包的包管理器。它是Node.js的默认包管理工具,也是世界上最大的软件注册表之一。下面从不同的角度来详细介绍Npm包管理器。

1. 功能与用途:

  • 包安装与管理:Npm允许用户通过命令行安装、更新和卸载已发布的包。只需简单的一行命令,就可以轻松获取所需的依赖包。
  • 依赖管理:在Node.js项目中,有很多第三方包是互相依赖的。Npm可以自动解析并管理这些依赖关系,确保项目能够正确运行。
  • 版本管理:Npm支持语义化版本规范(Semantic Versioning),可以通过范围操作符来指定所需的包版本。这使得开发者可以灵活地选择适合项目的版本,同时保持向后兼容性。
  • 脚本执行:Npm允许在项目的package.json文件中定义各种脚本命令,用于简化开发过程中的常见任务,如构建、测试、部署等。

2. 下载和安装

我们在安装node的时候,其实也一起安装了npm,可以使用

npm -v

来查看当前的npm版本
在这里插入图片描述

二、npm 的常用命令介绍

我们使用

npm --help

npm为我们提供了哪些可以使用的命令
在这里插入图片描述
如上图、两个红色框中的都是npm为我们提供的命令,这里我们就看看那些常用命令吧

npm 的一些常用命令:

1. npm init:创建一个新的 package.json 文件

在初始化一个新项目时使用。该命令会询问一些项目的配置信息,比如名称、版本、描述等。
在这里插入图片描述
在这里插入图片描述

package.json文件通常包含以下主要属性:

  1. name:项目的名称。
  2. version:项目的版本号。
  3. description:项目的描述。
  4. main:指定项目的入口文件。
  5. scripts:定义一系列的命令脚本,用于执行不同的任务,比如编译、打包、测试等。
  6. keywords:关键词,用于将项目添加到npm的搜索中。
  7. author:项目的作者。
  8. license:项目的许可证信息。
  9. dependencies:项目依赖的生产环境库。这些库会在打包发布时被包含进去。
  10. devDependencies:项目依赖的开发环境库。这些库用于开发和构建项目,不会被包含进最终的打包发布中。
  11. peerDependencies:项目所依赖的其他库的版本约束条件。
  12. browserslist:定义项目的目标浏览器列表,用于自动适配浏览器的兼容性。

除了上述属性外,package.json文件还可以包含其他自定义的属性和配置项。例如,一些前端工具(如Babel、Webpack等)会在package.json中添加特定的配置项,用于配置工具的行为和功能。

2. npm install:安装项目所需的所有依赖模块

如果 package.json 文件存在,会根据其中的依赖信息来安装相应的模块。

npm install

例如:npm install express 安装 Express 模块。
此外,从 npm 5 开始,此命令将 添加到 package.json 文件依赖。 在版本 5 之前,你需要添加标志 --save。

通常你会看到更多的标志被添加到这个命令中:

  • --save-dev 安装并添加条目到 package.json 文件开发依赖
  • --no-save 安装但不添加条目到 package.json 文件依赖
  • --save-optional 安装并添加条目到 package.json 文件可选依赖
  • --no-optional 将阻止安装可选依赖

也可以使用标志的简写形式:

  • -S:–save
  • -D:–save-dev
  • -O:–save-optional

devDependenciesdependencies 之间的区别在于前者包含开发工具,如测试库,而后者与生产中的应用打包在一起

3. npm install :安装指定的模块。

可以通过模块的名称,或者以 @ 符号指定模块的版本。

例如:npm install lodash 安装最新版本的 lodash 模块。

     `npm install lodash@4.17.20` 安装 lodash 的指定版本。

4. npm uninstall :卸载指定的模块。

例如:npm uninstall express 卸载 Express 模块。

5. npm update:更新项目依赖的模块。

会检查 package.json 文件中依赖模块的最新版本,并进行更新。

6. npm run

{"scripts": {"start-dev": "node lib/server-development","start": "node lib/server-production"}
}

使用这个特性来运行 Webpack 是很常见的:

{"scripts": {"watch": "webpack --watch --progress --colors --config webpack.conf.js","dev": "webpack --progress --colors --config webpack.conf.js","prod": "NODE_ENV=production webpack -p --config webpack.conf.js"}
}

因此,不用输入那些很容易忘记或输入错误的长命令,你可以运行

$ npm run watch
$ npm run dev
$ npm run prod

7. npm search :搜索模块。

可以根据模块名来搜索可用的模块。

例如:npm search express 搜索名为 “express” 的模块。

8. npm outdated:检查过时的模块。

例如:npm outdated 将列出当前项目中已经过时的模块。

9. npm publish:将自己开发的模块发布到 npm 上。

例如:npm publish 发布当前项目为一个 npm 模块。

10. npm config:配置 npm 的各种选项。

例如:npm config get registry 获取配置项 registry 的值。
在这里插入图片描述

这些是 npm 的一些常用命令,可以帮助开发者更方便地管理和使用 Node.js 模块。

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

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

相关文章

FPGA USB FX2 图片发送试验 驱动CY7C68013A实现 提供2套工程源码和技术支持

目录 1、前言2、我这儿已有的 FPGA USB 通信方案3、CY7C68013A芯片解读和硬件设计FX2 简介SlaveFIFO模式及其配置 4、工程详细设计方案输入测试图片的处理PC上位机发送测试图片图像接收与缓存图像输出显示 5、vivado工程1--LCD输出显示6、vivado工程1--LCD输出显示7、上板调试验…

Labview通过OPC与S1200通信

一、配置PC的IP地址 二、S7-1200的配置 通过博图,在PLC CPU的属 性-常规-保护里勾选“允许从 远程伙伴使用PUT/GET通信 访问 三、新建一个DB1数据块,在DB1里新建一个变量,例如 名称为“ASD”,类型为“Word” 四、右击“DB1”&…

超详细,Pytest自动化测试框架 token全局设置-多套环境使用(实战)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 在做自动化测试时…

MySQL安装部署

目录 1、仓库安装 2、本地安装 3、容器安装 4、源码安装 5、二进制安装 环境:centOS7 1、仓库安装 1、上传安装包 2、解压 mkdir mysql ; tar xf 安装包 -C mysql 3、安装 ls -l mysq1-community* rpm -ivh mysql-community-server-5.7.18-.el7.x86_64.rpm (…

Zookeeper的选举机制

一、概述: Zookeeper的选举机制是它的一项核心功能,用于在分布式系统中选择一个领导者(leader)来处理各种请求和操作。以下是Zookeeper选举机制的一些关键方面: 服务器ID(Server ID)&#xff…

Flutter基础控件

Text:文字 Text("Flutter") Text是最常用也是最基础的,目前学习阶段只用来加载文字数据,更多属性和样式设置请查看源码自己探索。 Button:按钮 ElevatedButton:普通按钮 ElevatedButton(onPressed: () {if (kDebugMode) {print("Elevat…

基于 R 对卫星图像进行无监督 kMeans 分类

一、前言 本文将向您展示如何使用 R 对卫星图像执行非常基本的 kMeans 无监督分类。我们将在 Sentinel-2 图像的一小部分上执行此操作。 Sentinel-2 是由欧洲航天局发射的一颗卫星,其数据可在此处免费访问。 我要使用的图像显示了 Neusiedl 湖的北部(奥地…

matlab用histfit画直方图+拟合曲线

matlab画直方图拟合曲线 成图效果1 数据格式2 绘制步骤3 后话 成图效果 1 数据格式 应该准备一个double的数组,如果是csv或者xlsx直接拖进matlab是table型,这是无法作为绘图参数的 如果是table型,可以使用table2array(data)进行转换 2 绘制…

【MySQL】在Linux下删除和安装MySQL

文章目录 一、前言二、检查、卸载内置环境三、获取mysql官方yum源四、正式安装MySQL服务五、登录MySQL配置my.cnf设置开机启动 一、前言 大家好久不见,今天开始分享关系型数据库Mysql的一些知识。 二、检查、卸载内置环境 2.1 首先使用命令查询当前mysql的运行状…

[Qt 教程之Widgets模块] —— QFontComboBox 字体选择器

Qt系列教程总目录 文章目录 3.2.1 创建 QFontComboBox3.2.2 成员函数1. 书写系统2. 字体过滤器3. 当前字体4. 信号 该控件用于选择字体,在一些软件中经常有类似控件,如下: Microsoft Office: Photoshop: QFontComboB…

聚观早报 | 字节跳动要造机器人;苹果已开发悬空虚拟键盘

今日要闻:字节跳动要造机器人;苹果已开发悬空虚拟键盘;苹果汽车或售价9万美元;全球首例猪心脏移植患者仅存活60天;首款搭载ChatGPT的自行车问世 字节跳动要造机器人 7 月 3 日消息,「机器人」作为未来科技…

【IT服务管理】MITRE :IT服务管理

定义: 信息技术 (IT) 服务管理 (ITSM) 是解决管理、支持和交付 IT 服务的最佳实践的框架、流程和模型的通用保护伞。IT 服务可能包括(由 NIST 为云计算定义):软件即服务 (SaaS)、平台即服务 (PaaS) 和基础设施即服务 (IaaS)。 关键…