npm包管理
1、介绍
npm是NodeJs项目模块管理工具,它已经集成了nodejs安装包中(自5.2以后新增了npx
指令用于解决调用项目内部安装的模块繁琐的问题),使用npm可以实现从NPM服务器下载别人编写的第三方包到本地使用。
npm仓库地址:https://www.npmjs.com/
当然除了npm以外还有Facebook贡献的Yarn,功能和npm一样,也可以作为包管理工具。
npx
node-modules/.bin/mocha --version
# 简化成了:
npx mocha --version
2、切换npm源
源:源站、镜像源
、镜像。
npm使用国外镜像源地址,再有的时候可能网络不是很通顺,这时可以使用国内镜像源来完成npm下载模块功能。
- 切换到阿里提供的npm镜像源
地址:https://developer.aliyun.com/mirror/NPM?from=tnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
执行完毕上述命名后,在系统中提供了一个cnpm包管理工具,功能和npm一样,所不同的是cnpm镜像源地址为阿里提供的源地址。
推荐,日后工作是安装软件都使用cnpm
- 使用nrm管理npm镜像源
nrm 是一个 npm 源管理器,允许你快速地在 npm源间切换。npm默认情况下是使用npm官方源(npm config list 来查看),如果直接修改npm源,如果后续需要连接到官方源才能工作,这样来回切换源就变得麻烦了,nrm通过简单的命令就可以解决此问题。
# 安装 通过cnpm来安装,cnpm使用的就是国内镜像源
cnpm i nrm -g
注意:-g表示
global
全局,让nrm不限于到某一个项目中,而是在所有的项目中都可使用
安装好nrm后可以通过nrm ls
命令来查看效果:
*
表示当前正在使用的镜像源
如果想切换成其他的镜像源,可以通过nrm use 源名称
进行切换,如需要切换成edunpm
的源,则可以执行指令:
nrm use edunpm
3、npm相关命令
# 初始化生成package.json文件(创建项目的)
npm init -y[不询问]
# 查看本项目已安装模块
npm list
# 安装模块
npm install 模块名[@版本号 可选] 或 npm i 模块名[@版本号 可选]
# 卸载已安装模块
npm uninstall 模块名
# 查看全局node_modules的地址
npm root -g
## 安装参数
##--save -S 记录生产环境所需模块 默认
##--save-dev -D 记录开发环境所需模块
##-g 安装到全局
关于
语义化版本
版本格式:主版本号.次版本号.修订号.先行版本号,版本号递增规则如下:
主版本号:当你做了不兼容的 API 修改
次版本号:当你做了向下兼容的功能性新增(功能做了升级)
修订号:当你做了向下兼容的问题修正(日常bug修改)
先行版本号及版本编译元数据可以加到
主版本号.次版本号.修订号
的后面,作为延伸。
~
表示版本号只能改变最末尾那段
^
表示除了大版本号以外,小版本号和补丁版本号都可以变特殊情况
0
开头的版本号:危险写法:~0.1,等于 0.1.0 <= 版本号 <1.0.0
保险写法:^0.1,等于 0.1.0 <= 版本号 <0.2.0
关于软件版本发行的四个阶段:
- alpha:内测版本
- beta:公测版本
- release candidate:RC,候选版本,功能已经确定,主要是排bug
- release:正式发行版本
4、自定义npm脚本
通过package.json文件中的scripts自定义脚本命令:
{
"scripts": {
"test": "echo hello"
}
}
随后就可以在命令行中运行:
npm run test
如果需要更多的自定义命令,只需要按照上述的格式进行套用即可。
5、自动重启应用
在编写调试Node.js项目,修改代码后需要频繁的手动重启应用,非常繁琐。nodemon这个工具,它的作用是监听代码文件的变动,当代码改变之后,自动重启。
# 全局安装nodemon
npm i -g nodemon
# 执行node脚本
nodemon app.js
参考文献:NPM官方文档