关键词:npm 生命周期、script 生命周期
安装和卸载
脚本名称 | 阶段 | 描述 | 执行时机 |
---|---|---|---|
preinstall | pre | 在 npm install 执行前运行,用于执行一些安装前的准备工作,例如检查依赖项或设置环境变量。 | 安装前 |
install, postinstall | install | 在模块安装后执行,通常用于构建项目或者为其生成某些必须的文件,例如安装完毕后自动编译 TypeScript、ES6 等。 | 安装后 |
preuninstall | pre | 在 npm uninstall 执行前运行,用于执行一些卸载前的准备工作。 | 卸载前 |
uninstall | post | 在 npm uninstall 执行后运行,用于清理卸载后的一些操作。 | 卸载后 |
postuninstall | post | 在 npm uninstall 执行后运行,用于执行一些卸载后的操作。 | 卸载后 |
发布和更新版本
脚本名称 | 阶段 | 描述 | 执行时机 |
---|---|---|---|
prepublish | pre | 在 publish(npm发布)执行前,运行 npm pack。 | 发布前 |
prepare | pre | 在包被发布前或安装前执行,可以用来设置编译或验证文件的操作。 | 发布前、安装前 |
prepublishOnly | pre | 在 npm publish 执行前运行,用于确保在 publish 命令执行时不会意外发布不必要的文件。 | 发布前 |
prepack | pre | 在 npm pack(打包命令)执行前运行,用于执行一些打包前的准备工作。 | 打包前 |
postpack | post | 在 npm pack 执行后运行,用于清理和重置打包相关的操作。 | 打包后 |
publish | post | 在包被成功发布后执行。 | 发布后 |
postpublish | post | 在包被成功发布后执行,用于执行一些发布后的操作。 | 发布后 |
preversion | pre | 在项目版本号更新(npm version)之前执行。 | 更新版本号前 |
version | post | 在 npm version 执行后执行,用于执行一些版本更新后的操作。 | 更新版本号后 |
postversion | post | 在项目版本号更新(npm version)之后执行。 | 更新版本号后 |
测试和运行
脚本名称 | 阶段 | 描述 | 执行时机 |
---|---|---|---|
pretest | pre | 在 npm test 执行前执行,用于执行某些测试前的准备工作。 | 测试前 |
test | test | 执行 npm run test 命令时执行。通常用于执行单元测试,并返回任何错误状态。 | 默认测试阶段 |
posttest | post | 在 npm test 执行后执行,用于执行某些测试后的操作。 | 测试后 |
prestart | pre | 在 npm start 执行前运行,用于执行某些启动进程前的准备工作。 | 启动前 |
start | start | 执行 npm start 命令时执行,通常用于启动 Web 服务器、Node 服务器、实时编译器等。 | 默认启动阶段 |
poststart | post | 在 npm start 执行后执行,用于执行某些启动进程后的操作。 | 启动后 |
prerestart | pre | 在 npm restart 执行前执行,用于执行一些重新启动进程前的准备工作。 | 重新启动前 |
restart | stop/start | 执行 npm restart 命令时执行,通常用于停止正在运行的 Node 服务器、Web 服务器等,然后以更新的源码重新启动服务。 | 默认重新启动阶段,但是该命令会触发停止和启动两个标准阶段 |
postrestart | post | 在 npm restart 执行后执行,用于执行一些重新启动进程后的操作。 | 重新启动后 |
其他生命周期
脚本名称 | 阶段 | 描述 | 执行时机 |
---|---|---|---|
prestop | pre | 在 npm stop 执行前运行,用于执行某些停止进程前的准备工作。 | 停止前 |
stop | stop | 执行 npm stop 命令时执行,通常用于停止正在运行的 Web 服务器、Node 服务器、实时编译器等。 | 默认停止阶段 |
poststop | post | 在 npm stop 执行后执行,用于执行某些停止进程后的操作。 | 停止后 |