深入理解npm run命令,run命令的两条潜规则

原文地址: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命令的两条潜规则 - npm-run-hero

深入理解npm run命令,run命令的两条潜规则(图4-1)

 

在本文中,苏南大叔描述的就是npm run的潜规则:prepost。而且在查看本文的内容前,您一定要知晓:npm run命令都是定义在package.json文件的scripts节点里面的。测试环境:macnpm@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命令的两条潜规则 - package-json

深入理解npm run命令,run命令的两条潜规则(图4-2)

 

 

潜规则一:npm startnpm run start

对于命令npm run ***,如果***start字样,就可以省略run字样。这个是目前为止,苏南大叔知道的唯一可以省略run字样的命令。是不是有其他的?有的话,请留言哦。

下面的两个命令是等同的:

Bash
npm start
Bash
npm run start

 

苏南大叔:深入理解npm run命令,run命令的两条潜规则 - npm-start

深入理解npm run命令,run命令的两条潜规则(图4-3)

 

 

潜规则二:prepost

对于某个命令***,如果定义:

  • 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命令的两条潜规则 - npm-run-dev

深入理解npm run命令,run命令的两条潜规则(图4-4)

 

***可以是start哦,在这个语境下,start是没有特殊身份的,也符合prepost潜规则。

posted @ 2021-05-25 10:26  eyesfree  阅读(901)  评论(0编辑  收藏  举报