npm
是Node.js
的包管理工具(package manager
),npm
由三个独立的部分组成: 网站(开发者查找包,设置参数以及管理npm
的主要途径) 注册表(保存每个包(package
)的信息) 命令行工具(通过命令行或终端运行。开发者通过 CLI
与 npm
打交道)。
npm install 安装包 或 npm i 包名
npm install jquery或 npm install jquery@2.2.4 安装指定版本
- 本地项目包
npm i <包>
安装在当前项目目录(node_modules)下,根据模块访问规则,当前项目以及子项目可访问。一般用于安装项目独立使用的包。 - 全局包
npm i -g <包>
安装在 npm 指定的全局目录下,通过全局模块访问机制可以在全局范围内访问。一般用于安装工具性质的包。 - 一次性安装多个模块
npm i gulp-pug gulp-debug gulp-sass
npm ls 查看已经安装的依赖包
npm update 更新包
注: jquery@2.2.4 执行 npm update之后,只会更新jquery@2.x.x以后的小版本,不会直接更新到3.x.x版本, 如需下载3.x版本重新安装需要的版本即可
- 更新单个全局包
npm update <name> -g
- 更新项目生产环境依赖包
npm update <name> -save
- 更新项目开发环境依赖包
npm update <name> -save-dev
更新依赖包
- 检测依赖包
npm i npm-check-updates -g
- 查看哪些依赖包需要更新
ncu
- 更新package.json文件中的依赖包为最新版本
- 安装最新的依赖包
npm i
npm outdate
查看安装包有没有版本更新
npm run 查看 package.json中有哪些 npm script命令
npm uninstall <包名> 或 npm uni <包名> 卸载包
npm uninstall rimraf -g 或 npm uni rimraf -g
查看包信息
npm view vue 或 npm v vue
查看安装包所有信息1
2
3npm v vue
vue@2.6.14 | MIT | deps: none | versions: 360
beta: 3.2.0-beta.8 csp: 1.0.28-csp latest: 2.6.14 next: 3.2.21npm v vue version
查看包最新版本1
2npm v vue version
2.6.14npm view <packagename> versions 或 npm view <packagename> versions --json
查看指定包的所有版本1
2
3
4
5
6
7
8
9
10
11
12
13
14npm view rimraf versions
[
'1.0.0', '1.0.1', '1.0.2', '1.0.4', '1.0.5',
'1.0.6', '1.0.7', '1.0.8', '1.0.9', '2.0.0',
'2.0.1', '2.0.2', '2.0.3', '2.1.0', '2.1.1',
'2.1.2', '2.1.3', '2.1.4', '2.2.0', '2.2.1',
'2.2.2', '2.2.3', '2.2.4', '2.2.5', '2.2.6',
'2.2.8', '2.3.0', '2.3.1', '2.3.2', '2.3.3',
'2.3.4', '2.4.0', '2.4.1', '2.4.2', '2.4.3',
'2.4.4', '2.4.5', '2.5.0', '2.5.1', '2.5.2',
'2.5.3', '2.5.4', '2.6.0', '2.6.1', '2.6.2',
'2.6.3', '2.7.0', '2.7.1', '3.0.0', '3.0.1',
'3.0.2'
]
npm root -g 查看全局包的安装路径
npm init 快速创建 package.json 需要手动选择配置
npm init –yes或-y 直接跳过参数问答环节,快速生成package.json
npm config list 查看npm基础配置
npm config get prefix 获取全局安装的默认目录
npm config set key value 设置npm镜像和node-sass
- npm config set registry https://registry.npm.taobao.org
- npm config set SASS_BINARY_SITE https://npm.taobao.org/mirrors/node-sass/
npm i -g与 npm i -S 或 npm i -D 区别
npm i xxx -g
全局安装npm i xxx -S
是npm i xxx --save
的简写 安装的插件会在package.json
文件中写入到dependencies
对象里面去,dependencies
需要发布到生产环境.(生产依赖/项目依赖包) 开发时使用,上线还需要npm i xxx -D
是npm i xxx --save-dev
的简写 安装的插件会在package.json
文件中写入到devDependencies
对象里面去,devDependencies
里面的插件只用于开发环境不用于生产环境.(开发依赖) 开发时需要,线上不需要
发布自己的模块包
package.json文件 项目(模块、包)说明配置文件,该文件描述了当前包的信息,只有拥有package.json文件的项目才可以被发布
自动创建package.json npm init / npm init --yes
1
2
3
4
5
6
7package.json
name:包名称,必填
version:版本,必填,格式 x.x.x
main : 包的入口主文件
scripts:自定义脚本,通过 npm run 脚本名称即可执行脚本定义的命令
dependencies:生产环境下需要使用的依赖包
devDependencies:只做开发环境(测试环境)下使用的依赖包注册 npmjs.org 账号
- 登录 npm adduser / npm login 要切回到npm源
- 发布 npm publish 查看发布的npm包
快速删除node_modules依赖或文件
- npm i rimraf -g 全局安装 rimraf 模块
- rimraf node_modules
cmd中 set 可以查看所有的环境变量
npm script 串行 或者 并行
{"test": "npm run lint:js && npm run lint:css && npm run lint:json && npm run lint:markdown"}
这也是让多个 npm script 串行的典型用例,实现方式也比较简单,只需要用 && 符号把多条 npm script 按先后顺序串起来即可{"test": "npm run lint:js & npm run lint:css & npm run lint:json & npm run lint:markdown & wait"}
需要把子命令的运行从串行改成并行,实现方式更简单,把连接多条命令的 && 符号替换成 & 即可。{"test": "npm-run-all lint:js lint:css lint:json lint:markdown"} 或 {"test": "npm-run-all lint:*"}
我们可以使用 npm-run-all 实现更轻量和简洁的多命令运行。需要安装 npm i npm-run-all -D
使用–ignore-scripts解决npm/yarn安装依赖失败问题
1 | npm ERR! code ELIFECYCLE |