npm包管理工具

npm(全称NodePackageManager)是包管理工具,随着Node.js的安装包一起被安装到了用户的电脑上。

在终端中执行npm -v命令,来查看npm包管理工具的版本号。

bash 复制代码
npm -v

1. 包的分类

使用npm包管理工具下载的包,共分为两大类,项目包和全局包。

1.1 项目包

那些被安装到项目的node_modules目录中的包,都是项目包。项目包又分为两类,分别是:

(1)开发依赖包

被记录到devDependencies节点中的包,只在开发期间会用到

bash 复制代码
npm i 包名 -D

(2)核心依赖包

被记录到dependencies节点中的包,在开发期间和项目上线之后都会用到

bash 复制代码
npm i 包名

1.2 全局包

在执行npm install命令时,如果提供了-g参数,则会把包安装为全局包。全局包会被安装到C:\Users\用户目录\AppData\Roaming\npm\node_modules目录下。

(1)全局安装指定的包

bash 复制代码
npm i 包名 -g

(2) 卸载全局安装的包

bash 复制代码
npm uninstall 包名 -g   

注意:

只有工具性质的包,才有全局安装的必要性,因为它们提供了好用的终端命令。

判断某个包是否需要全局安装后才能使用,可以参考官方提供的使用说明即可。

2. 在项目中安装包的命令

2.1 安装包

bash 复制代码
npm install 包的完整名称

2.2 安装包简写

bash 复制代码
npm i 包的完整名称

2.3 安装指定版本的包

bash 复制代码
npm i moment@2.22.2

2.4 安装包后文件更新

初次装包完成后,在项目文件夹下多一个叫做node_modules的文件夹和package-lock.json的配置文件。

其中:

node_modules文件夹用来存放所有已安装到项目中的包,require()导入第三方包时,就是从这个目录中查找并加载包。

package-lock.json配置文件用来记录node_modules目录下的每一个包的下载信息,例如包的名字、版本号、下载地址等。

注意:程序员不要手动修改node_modules或package-lock.json文件中的任何代码,npm包管理工具会自动维护它们。

2.5 一次性安装所有的包

可以运行 npm install 命令(或 npm i)一次性安装所有的依赖包:

bash 复制代码
npm install

注意:

  • 执行 npm install 命令时,npm 包管理工具会先读取 package.json 中的 dependencies 节点
  • 读取到记录的所有依赖包名称和版本号后,npm 包管理工具会把这些包一次性下载到项目中

2.6 卸载包

可以运行npm uninstall命令,来卸载指定的包:

bash 复制代码
 npm uninstall moment

注意:npm uninstall 命令执行成功后,会把卸载的包,自动从 package.json 的 dependencies 中移除掉。

2.7 devDependencies节点

如果某些包只在项目开发阶段会用到,在项目上线之后不会用到,则建议把这些包记录到devDependencies节点中。

与之对应的,如果某些包在开发和项目上线之后都需要用到,则建议把这些包记录到dependencies节点中。

(1)安装指定的包,并记录到 devDependencies 节点中

bash 复制代码
npm install 包名 --save -dev

(2)简写

bash 复制代码
npm i 包名 -D

3. 解决下包速度慢的问题

3.1 切换npm的下包镜像源

bash 复制代码
# 查看当前的下包镜像源
npm config get registry
#将下包的镜像源切换为淘宝镜像源
npm config set registry=https://registry.npm.taobao.org/
# 检查镜像源是否下载成功
npm config get registry

3.2 切换npm的下包镜像源

安装nrm工具,利用nrm的终端命令,可以快速查看和切换下包的镜像源

bash 复制代码
# 通过 npm 包管理器,将 nrm 安装为全局可用的工具
npm i nrm -g
#查看所有可用的镜像源
nrm ls
# 将下包的镜像源切换为 taobao 镜像
nrm use taobao

4. 使用i5ting_toc命令快速生成MD目录

(1)安装

bash 复制代码
npm install -g i5ting_toc

(2)执行

bash 复制代码
i5ting_toc -f sample.md -o
相关推荐
熊猫钓鱼>_>11 分钟前
动态网站发布部署核心问题详解
前端·nginx·容器化·网页开发·云服务器·静态部署
方也_arkling11 分钟前
elementPlus按需导入配置
前端·javascript·vue.js
我的xiaodoujiao25 分钟前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 44--将自动化测试结果自动推送至钉钉工作群聊
前端·python·测试工具·ui·pytest
沛沛老爹27 分钟前
Web开发者转型AI:多模态Agent视频分析技能开发实战
前端·人工智能·音视频
David凉宸33 分钟前
vue2与vue3的差异在哪里?
前端·javascript·vue.js
笔画人生38 分钟前
Cursor + 蓝耘API:用自然语言完成全栈项目开发
前端·后端
AC赳赳老秦1 小时前
外文文献精读:DeepSeek翻译并解析顶会论文核心技术要点
前端·flutter·zookeeper·自动化·rabbitmq·prometheus·deepseek
小宇的天下1 小时前
Calibre 3Dstack --每日一个命令day18【floating_trace】(3-18)
服务器·前端·数据库
毕设源码-钟学长1 小时前
【开题答辩全过程】以 基于web技术的酒店信息管理系统设计与实现-为例,包含答辩的问题和答案
前端
css趣多多1 小时前
this.$watch
前端·javascript·vue.js