深入理解npm命令,npm i之前可被自动执行的命令prepare
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
在以前的文章里面,苏南大叔描述过两个会被自动执行的命令,即:pre
和post
。本文里面,苏南大叔再来描述一个类似的命令,叫prepare
,也是会被自动执行的。这个prepare
的执行命令的使用场景是什么呢?
大家好,这里是苏南大叔的“程序如此灵动”博客,这里讲述苏南大叔和计算机代码的故事。本文讲述npm
的prepare
命令。本文的测试环境:win10
,node@16.14.2
,npm@8.3.0
。
测试代码
可以先使用npm init
命令,先初始化一个npm
项目。
然后配置scripts
字段,增加新的内置命令prepare
。注意这里配置的命令,是在终端里面可以执行的,比如:输出一句话使用的是echo
,而不是nodejs
里面的console.log()
。
{
"name": "npm",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"prepare": "echo \"在npm i之前会自动执行\""
},
"author": "",
"license": "ISC"
}
触发方式
执行npm i
的时候,就会自动执行prepare
命令。使用yarn
安装的时候,也会自动执行。
执行的先后顺序是:先执行安装,然后再prepare
,也就是说,如果在prepare
命令里面配置了只有被安装的包才能执行的命令的话,是没有问题的。比如下面的这个配置:
{
"name": "npm",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"prepare": "husky install"
},
"author": "",
"license": "ISC",
"dependencies": {
"husky": "^7.0.4"
}
}
prepare
听起来像是在什么事情之前执行的,但是这里确实在npm install
这件事情之后执行的,可能prepare
的是后续的run
命令吧。这个husky install
命令是必须存在husky
才能运行的,但是npm i
发生在prepare
之前,所以在prepare
阶段,是可以执行"husky"相关命令的。
执行顺序是:
npm install => prepare里面的命令
相关文章
- https://newsn.net/say/npm-run.html
- https://newsn.net/say/cnpm-raw-github.html
- https://newsn.net/say/npm-cache.html
综述
在这里,prepare
实际上是个潜规则命令,在npm i
的时候,会自动执行prepare
命令。更多npm
经验文章,请点击下面的链接:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
感谢解释,很清楚。