注:如下讨论是以 windows 环境为例,其余环境也是相似的流程前端
在咱们写前端程序的时候常常执行这样的命令npm run dev
, 那这背后的原理是什么呢?
这里涉及到package.json
文件的 scripts
字段,好比下面的例子vue
"scripts": { "dev": "vuepress dev docs", }
参考 npm 的文档,npm run dev
就至关于 node_modules\.bin\vuepress.cmd dev docs
node
node_modules\.bin\vuepress.cmd
是一个 windows 下的能够直接运行的批处理程序,内容以下:git
@IF EXIST "%~dp0\node.exe" ( "%~dp0\node.exe" "%~dp0\..\vuepress\vuepress.js" %* ) ELSE ( @SETLOCAL @SET PATHEXT=%PATHEXT:;.JS;=;% node "%~dp0\..\vuepress\vuepress.js" %* )
其做用就是使用 node 来运行 node_modules\vuepress\vuepress.js
用命令来表示就是github
node node_modules\vuepress\vuepress.js dev docs
1.当咱们一个项目,它的 package.json
文件的 scripts
字段,好比下面的例子npm
"scripts": { "dev": "vuepress dev docs", }
2.当咱们运行npm run dev
的时候,其实至关于运行了json
node node_modules\vuepress\vuepress.js dev docs
为何会是 node_modules\vuepress\vuepress.js
这是由于 vuepress 包的 package.json
有以下的内容:windows
"bin": { "vuepress": "vuepress.js" }
这表示了这个包会提供一个vuepress
命令程序,这个程序实际执行的是 vuepress\vuepress.js
文件ide