欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

輸入npm?run?xxx后執(zhí)行原理深入解析

 更新時(shí)間:2022年07月05日 10:07:14   作者:故友  
這篇文章主要為大家介紹了輸入npm?run?xxx后執(zhí)行原理深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

前言

當(dāng)我們輸入npm run XXX會(huì)首先去package.json文件里找scripts 里找對應(yīng)的xxx,然后執(zhí)行 xxx的命令,例如我下面這個(gè)項(xiàng)目輸入npm run dev就會(huì)執(zhí)行vue-cli-service serve 這條命令。

package.json文件

那么問題來了:

為什么不直接執(zhí)行vue-cli-service serve而要執(zhí)行npm run serve 呢?

因?yàn)?直接執(zhí)行vue-cli-service serve,會(huì)報(bào)錯(cuò),因?yàn)椴僮飨到y(tǒng)中沒有存在vue-cli-service這一條指令。

那么問題又來了:

為什么執(zhí)行npm run serve的時(shí)候,這樣它就能成功,而且不報(bào)指令不存在的錯(cuò)誤呢?

我們在安裝依賴的時(shí)候,是通過npm i xxx 來執(zhí)行的,例如 npm i @vue/cli-service,npm 在 安裝這個(gè)依賴的時(shí)候,就會(huì)node_modules/.bin/ 目錄中創(chuàng)建 好vue-cli-service 為名的幾個(gè)可執(zhí)行文件了。

.bin 目錄,這個(gè)目錄不是任何一個(gè) npm 包。目錄下的文件,表示這是一個(gè)個(gè)軟鏈接,打開文件可以看到文件頂部寫著 #!/bin/sh ,表示這是一個(gè)腳本。

由此我們可以知道,當(dāng)使用 npm run serve 執(zhí)行 vue-cli-service serve 時(shí),雖然沒有安裝 vue-cli-service的全局命令,但是 npm 會(huì)到 ./node_modules/.bin 中找到 vue-cli-service 文件作為 腳本來執(zhí)行,則相當(dāng)于執(zhí)行了 ./node_modules/.bin/vue-cli-service serve(最后的 serve 作為參數(shù)傳入)。

總結(jié)

  • 運(yùn)行 npm run xxx的時(shí)候,npm 會(huì)先在當(dāng)前目錄的 node_modules/.bin 查找要執(zhí)行的程序,如果找到則運(yùn)行;
  • 沒有找到則從全局的 node_modules/.bin 中查找,npm i -g xxx就是安裝到到全局目錄;
  • 如果全局目錄還是沒找到,那么就從 path 環(huán)境變量中查找有沒有其他同名的可執(zhí)行程序。

參考 http://www.dbjr.com.cn/article/254116.htm

以上就是輸入npm run xxx后執(zhí)行原理深入解析的詳細(xì)內(nèi)容,更多關(guān)于npm run xxx執(zhí)行原理的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論