# npm常用命令
# 简介
npm是跟随node一起安装的包(模块)管理器。常见的使用场景有以下几种:
- 允许用户从npm服务器下载别人编写的第三方包到本地使用。
- 允许用户从npm服务器下载并安装别人编写的命令行程序到本地使用。
- 允许用户将自己编写的包或命令行程序上传到npm服务器供别人使用。
# 常用命令
# 检测是否安装及版本
npm -v # 显示版本号说明已经安装相应的版本
1
# 生成package.json文件
npm init
1
package.json用来描述项目中用到的模块和其他信息
# 安装模块
npm install # 安装package.json定义好的模块,简写 npm i
# 安装包指定模块
npm i <ModuleName>
# 全局安装
npm i <ModuleName> -g
# 安装包的同时,将信息写入到package.json中的 dependencies 配置中
npm i <ModuleName> --save
# 安装包的同时,将信息写入到package.json中的 devDependencies 配置中
npm i <ModuleName> --save-dev
# 安装多模块
npm i <ModuleName1> <ModuleName2>
# 安装方式参数:
-save # 简写-S,加入到生产依赖中
-save-dev # 简写-D,加入到开发依赖中
-g # 全局安装 将安装包放在 /usr/local 下或者你 node 的安装目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 查看
# 查看所有全局安装的包
npm ls -g
# 查看本地项目中安装的包
npm ls
# 查看包的 package.json文件
npm view <ModuleName>
# 查看包的依赖关系
npm view <ModuleName> dependencies
# 查看包的源文件地址
npm view <ModuleName> repository.url
# 查看包所依赖的node版本
npm view <ModuleName> engines
# 查看帮助
npm help
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 更新模块
# 更新本地模块
npm update <ModuleName>
# 更新全局模块
npm update -g <ModuleName> # 更新全局软件包。
npm update -g # 更新所有的全局软件包。
npm outdated -g --depth=0 # 找出需要更新的包。
1
2
3
4
5
6
7
2
3
4
5
6
7
# 卸载模块
# 卸载本地模块
npm uninstall <ModuleName>
# 卸载全局模块
npm uninstall -g <ModuleName> # 卸载全局软件包。
1
2
3
4
5
2
3
4
5
# 清空缓存
# 清空npm缓存
npm cache clear
1
2
2
# 使用淘宝镜像
# 使用淘宝镜像
npm install -g cnpm --registry=https://registry.npmmirror.com
1
2
2
# 其他
# 更改包内容后进行重建
npm rebuild <ModuleName>
# 检查包是否已经过时,此命令会列出所有已经过时的包,可以及时进行包的更新
npm outdated
# 访问npm的json文件,此命令将会打开一个网页
npm help json
# 发布一个包的时候,需要检验某个包名是否存在
npm search <ModuleName>
# 撤销自己发布过的某个版本代码
npm unpublish <package> <version>
# 查看源
npm config list
# 设置代理
npm config set proxy http://127.0.0.1:8080
npm config set https-proxy http://127.0.0.1:8080
# 删除代理
npm config delete proxy
npm config delete https-proxy
# 转换淘宝源和官方源
npm config set registry https://registry.npmmirror.com
npm config set registry https://registry.npmjs.org/
# 格式化所有文件
npm run lint --fix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 使用技巧
# 多次安装不成功尝试先清除缓存
npm cache clean -f
1
# 查看已安装的依赖包版本号
npm ls <ModuleName>
1
注意:用此方法才能准确的知道项目使用的版本号,查看package.json时,有“^" 符号表示大于此版本
# npm发布包教程
# npm版本号
这里先初步补充一下npm
版本号相关知识,npm
的版本号遵循SemVer 规范 (opens new window),版本号格式必须采用X.Y.Z的格式,其中 X、Y 和 Z 为非负的整数。X 是主版本号、Y 是次版本号、而 Z 为修订号,英文对应表示为 major、minor、patch,每个号必须采用递增。
X.Y.Z ===> {major}.{minor}.{patch}-state
2.4.1
1
2
2
state – 版本状态,可选字段,可选值包括以下几种
- alpha,内部测试版本,bug较多
- beta,公测版本,给外部进行测试的版本,有缺陷
- rc,release candidate,前面三种测试版本的进一步版本,实现了全部功能,解决了大部分bug,接近发布,正式版本的候选版本
# 可执行命令
major:主版本号(大版本)
minor:次版本号(小更新)
patch:补丁号(补丁)
premajor:预备主版本
preminor: 预备次版本
prepatch:预备补丁版本
prerelease:预发布版本
1
2
3
4
5
6
7
2
3
4
5
6
7
npm version patch // 1.0.1 表示小的bug修复
npm version minor // 1.1.0 表示新增一些小功能
npm version major // 2.0.0 表示大的版本或大升级
npm version preminor // 1.1.0-0 后面多了个0,表示预发布
npm version patch --preRelease=beta // 1.0.1-beta.0
1
2
3
4
5
2
3
4
5
# 撤销发布
由于撤销发布会让把要撤销的包作为依赖的包不能正常工作,所以npm官方对包的撤销是有限制的:
- 不允许撤销发布已经超过24小时的包(
unpublish is only allowed with versions published in the last 24 hours
) - 如果在24小时内确实要撤销,需要加--force参数
- 即使撤销了发布的包,再次发布的时候也不能与之前被撤销的包的名称/版本其中之一相同,因为这两者构成的唯一性已经被占用,官方并没有随着撤销而删除
撤销发布的命令为 npm unpublish
npm unpublish my-test-project
// 报错
npm ERR! Refusing to delete entire project.
npm ERR! Run with --force to do this.
npm ERR! npm unpublish [<@scope>/]<pkg>[@<version>]
// 加 --force参数重新撤销发布
npm unpublish my-test-project --force
npm WARN using --force I sure hope you know what you are doing.
- my-test-project
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# nrm的作用与使用
# nrm是什么?
nrm(npm registry manager )是npm的镜像源管理工具,有时候国外资源太慢,使用这个就可以快速地在 npm 源间切换
# nrm的安装
npm install -g nrm
1
# nrm命令
nrm ls #查看可用的源(有*号的表示当前所使用的源,以下<registry>表示源的名称)
nrm use <registry> # 将npm下载源切换成指定的源
nrm add <registry> <url> # 添加源,url为源的路径
nrm del <registry> # 删除源
nrm test <registry> # 测试源的响应时间,可以作为使用哪个源的参考
nrm help # 查看nrm帮助
nrm home <registry> # 跳转到指定源的官网
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# nrm使用
如果在你的网络不太理想或者受到其他网络限制导致不能使用npm原本的源进行下载时,nrm就非常有用了,你只需要:
nrm ls # 查看可用的源
nrm use <registry> # 切换到指定源
1
2
2