原文地址: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
包含着兩個潛規則。
深入理解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"
}
深入理解npm run命令,run命令的兩條潛規則(圖4-2)
潛規則一:npm start
和npm run start
對於命令npm run ***
,如果***
是start
字樣,就可以省略run
字樣。這個是目前為止,蘇南大叔知道的唯一可以省略run
字樣的命令。是不是有其他的?有的話,請留言哦。
下面的兩個命令是等同的:
npm start
npm run start
深入理解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
的話,結果如下:
深入理解npm run命令,run命令的兩條潛規則(圖4-4)
***
可以是start
哦,在這個語境下,start
是沒有特殊身份的,也符合pre
和post
潛規則。