從 npm run dev 提及

注:如下討論是以 windows 環境爲例,其餘環境也是相似的流程前端

正文

在咱們寫前端程序的時候常常執行這樣的命令npm run dev, 那這背後的原理是什麼呢?
這裏涉及到package.json文件的 scripts 字段,好比下面的例子vue

"scripts": {
  "dev": "vuepress dev docs",
}

參考 npm 的文檔,npm run dev 就至關於 node_modules\.bin\vuepress.cmd dev docsnode

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

參考

  1. https://www.npmjs.com.cn/cli/...
  2. http://steve-jansen.github.io...
相關文章
相關標籤/搜索