1.什么是NPM
NPM 的全称是Node Package Manager,它是 JavaScript 的包管理工具, 并且是Node.js平台默认的包管理工具。通过NPM 可以安装、共享代码,管理项目的依赖关系。
- 可以从NPM服务器上下载别人编写好的包或命令行程序到本地使用。
- 可以将自己编写好的包或命令行程序上传到NPM服务器供别人使用。
NPM和Javascript的关系就相当于Maven和Java的关系。我们通过使用 npm 命令可以很方便地下载和安装js库,管理前端工程。最新版本的 Node.js 已经集成了 npm 工具,所以要想使用npm,必须在本机安装 Node 环境。Node.js 官网下载地址:
安装完Node.js之后,打开控制台,在控制台中输入如下命令可以查看node与npm的版本。
# 查看node版本
node -v
# 查看npm版本
npm -v
2.NPM 初始化项目
新建一个文件夹npm-study,通过命令提示符窗口进入该文件夹,执行下面命令进行初始化项目
# 初始化项目,手动设置项目参数
npm init
在控制台根据提示输入相关信息,如果使用默认值,则直接回车即可。
- package name: 包名,其实就是项目名称,注意不能有大写字母
- version: 项目版本号
- description: 项目描述
- keywords: 关键字,便于用户搜索到我们的项目
最后会在当前目录下生成一个叫package.json的文件,这个是包配置文件,相当于maven 的 pom.xml,我们之后也可以根据项目需要修改该配置文件。
如果在新建的文件夹npm-study,通过命令提示符窗口执行如下命令,初始化项目时,均采用默认信息,不会提示你手动输入任何信息。
# 初始化项目,项目参数采用默认值
npm install -y
3.安装模块
说明:使用npm install命令用于安装某个模块,安装方式分别为 :本地安装(local)、全局安装(global)两种。
3.1本地安装:将JS库安装在当前目录下
# 本地安装:将JS库安装到当前执行命令时所在目录
npm install <module name> [@版本号]
# 全局安装:将JS库安装到“全局目录” 下
npm install <module name> [@版本号] -g
# 将JS库安装在当前目录下
# 1.本地安装jQuery的最新版本
npm install jquery
# 2.本地安装jQuery的指定版本
npm install jquery@2.2.0
# 3.查看本地已经安装的模块
npm list
说明:
- 如果出现黄色警告信息,可以忽略,请放心,你已经成功安装了。
- 在当前目录下会出现一个node_modules文件夹和package-lock.json文件
- node_modules文件夹用于存放下载的JS库(相当于maven的本地仓库)
- package-lock.json 是在npm install时生成的一份文件。用以记录当前状态下实际安装的各个包的具体来源和版本号。
- 重新打开package.json 文件,发现刚才下载的jquery.js 已经添加到依赖列表中了。
- 关于模块版本号表示方式:
- 指定版本号:比如 3.5.2 ,只安装指定版本。遵循 “大版本.次要版本.小版本”的格式规定。
- ~ 波浪号 + 指定版本号:比如 ~3.5.2 ,安装 3.5.x 的最新版本(不低于 3.5.2),但是不安装 3.6.x,也就是说安装时不改变大版本号和次要版本号。
- ^ 插入号 + 指定版本号:比如 ^3.5.2 ,安装 3.x.x 的最新版本(不低于 3.5.2),但是不安装 4.x.x,也就是说安装时不改变大版本号。需要注意的是,如果大版本号为0,则插入号的行为与波浪号相同,这是因为此时处于开发阶段,即使是次要版本号变动,也可能带来 程序的不兼容。
- latest :安装最新版本。
3.2全局安装:将JS库安装在全局目录下
3.2.1查看和设置全局目录
# 查看全局目录:查看用户配置的全局目录
npm root -g
# 设置全局目录:将全局目录设置为"D:\Develop\NodeJS\node_global\node_modules"
npm config set prefix "D:\Develop\NodeJS\node_global\node_modules"
3.2.2全局安装案例
# 将JS库安装在全局目录下
# 1.全局安装Vue的最新版本
npm install vue -g
# 2.全局安装Vue的指定版本
npm install vue@2.5.0 -g
# 3.查看全局已经安装的模块
npm list -g
3.3生产环境模块安装
说明:安装模块的时候添加参数–save或-S是把模块的版本信息保存到package.json 文件的 dependencies 字段中(生产环境依赖)。
# 1.语法格式
npm install <module name> [--save|-S]
# 2.案例演示:安装jQuery到生产环境依赖,也就是package.json文件的dependencies字段中
npm install jquery -S
3.4开发环境模块安装
说明:安装模块的时候添加参数–save-dev或-D参数是把模块的版本信息保存到 package.json文件的devDependencies字段中(开发环境依赖)。开发阶段一般使用它。
# 1.语法格式
npm install <module name> [--save-dev|-D]
# 2.案例演示:安装eslint到开发环境依赖,也就是package.json文件的devDependencies字段中
npm install eslint -D
4.查看模块
4.1查看本地已安装的模块
# 查看本地安装的所有模块,查看的是当前目录。
npm list
# 查看本地安装的指定模块,查看的是当前目录。
npm list <module name>
# 查看本地安装的所有模块,查看的是全局目录。
npm list -g
# 查看本地安装的指定模块,查看的是全局目录。
npm list <module name> [-g]
4.2查看远程服务器模块
# 查看远程服务器指定模块的最新版本
npm view <Module Name> version
# 查看远程服务器指定模块的所有版本
npm view <Module Name> versions
# 查看远程服务器jQuery的最新版本
npm view jquery version
# 查看远程服务器jQuery的所有版本
npm view jquery versions
5.卸载模块
# 卸载局部模块
npm uninstall <module name>
# 卸载全局模块
npm uninstall <module name> -g
6.批量下载模块
当我们从网上下载某些项目后,发现项目中只有package.json,没有node_modules 文件夹,这时我们可以通过npm install命令下载这些JS库。通过命令提示符窗口进入package.json所在的目录,执行如下命令:
# 批量下载模块
npm install
此时,npm会自动下载 package.json中依赖的JS库。
7.配置淘宝镜像加速
7.1 查看当前使用的镜像地址
npm get registry
7.2 配置镜像地址为淘宝地址
npm config set registry https://registry.npm.taobao.org
7.3 还原镜像地址为默认地址
npm config set registry https://registry.npmjs.org