原文地址:https://newsn.net/say/npm-run.html
============================================
商业转载请联系获得授权,非商业转载请注明出处
作者:苏南大叔 【京城,非著名互联网从业人员】
来源:https://newsn.net/say/npm-run.html
打赏:https://newsn.net/shang.html
加群:https://newsn.net/group.html
============================================
欢迎转发/打赏/点赞/留言,感谢您的支持!
大家在调试node
系列的程序的时候,一般少不了使用npm
安装依赖,然后再执行npm run
命令,而大家可能不知道的是,npm run
包含着两个潜规则。
程序猿聊天QQ群:175454274
深入理解npm run命令,run命令的两条潜规则(图4-1)
在本文中,苏南大叔描述的就是npm run
的潜规则:pre
和post
。而且在查看本文的内容前,您一定要知晓:npm run
命令都是定义在package.json
文件的scripts
节点里面的。测试环境:mac
,npm@6.14.3
。
下面是个例子,package.json
定义如下:
{ "name": "nnn", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "echo \"test\"", "predev": "echo \"before dev\"", "dev": "echo \"deving\"", "postdev": "echo \"after dev\"" }, "author": "sunan", "license": "ISC" }
程序猿聊天QQ群:175454274
深入理解npm run命令,run命令的两条潜规则(图4-2)
npm start
和npm run start
对于命令npm run ***
,如果***
是start
字样,就可以省略run
字样。这个是目前为止,苏南大叔知道的唯一可以省略run
字样的命令。是不是有其他的?有的话,请留言哦。
下面的两个命令是等同的:
Bashnpm startBash
npm run start
程序猿聊天QQ群:175454274
深入理解npm run命令,run命令的两条潜规则(图4-3)
pre
和post
对于某个命令***
,如果定义:
pre***
,那么就会在npm run ***
之前运行。pos***
,那么就会在npm run ***
之后运行。例如:
"scripts": { "start": "echo \"test\"", "predev": "echo \"before dev\"", "dev": "echo \"deving\"", "postdev": "echo \"after dev\"" },
那么,当***
为dev
的时候,执行npm run dev
的话,结果如下:
程序猿聊天QQ群:175454274
深入理解npm run命令,run命令的两条潜规则(图4-4)
***
可以是start
哦,在这个语境下,start
是没有特殊身份的,也符合pre
和post
潜规则。