鍍金池/ 問答/HTML/ vue-cli 中使用 NoEmitOnErrorsPlugin 具體有什么作用

vue-cli 中使用 NoEmitOnErrorsPlugin 具體有什么作用,怎么做能把其作用顯現(xiàn)出來?

webpack.dev.config.js使用了NoEmitOnErrorsPlugin插件,但去掉沒有感覺

看官方的解釋:

  1. 在編譯出現(xiàn)錯(cuò)誤時(shí),使用 NoEmitOnErrorsPlugin 來跳過輸出階段。
  2. 如果你在使用 CLI(命令行界面command-line interface),啟用此插件后,webpack 進(jìn)程遇到錯(cuò)誤代碼將不會(huì)退出。

clipboard.png

我有這幾點(diǎn)疑問:

  1. “在編譯出現(xiàn)錯(cuò)誤時(shí),使用 NoEmitOnErrorsPlugin 來跳過輸出階段,這樣可以確保輸出資源不會(huì)包含錯(cuò)誤”這句話不是很理解
  2. "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", 執(zhí)行 npm run dev 時(shí)算 使用 CLI 嗎?如果算,我去掉這個(gè)插件,我寫一些錯(cuò)誤代碼依然不會(huì)退出webpack 進(jìn)程,這是為什么?
回答
編輯回答
枕頭人
  1. NoEmitOnErrorsPlugin的官方中文文檔翻譯里還有這樣一段
對(duì)于所有資源,統(tǒng)計(jì)資料(stat)的 emitted 標(biāo)識(shí)都是 false

webpacks配置參數(shù)中stats是用來配置輸出構(gòu)建日志級(jí)別的
看了下NoEmitOnErrorsPlugin的源碼部分,其中有這一段,捕獲到日志錯(cuò)誤時(shí),返回false,即不輸出錯(cuò)誤日志

if(compilation.getStats().hasErrors())
                return false;
  1. 這個(gè)問題,我也不太理解,只能說說我的見解。首先他是cli命令 ,啟用了WDS服務(wù),--inline表示默認(rèn)內(nèi)聯(lián)模式運(yùn)行,--progress表示輸出構(gòu)建過程。這部分發(fā)生錯(cuò)誤時(shí),其實(shí)應(yīng)該已經(jīng)報(bào)錯(cuò)了,只是構(gòu)建錯(cuò)誤應(yīng)該輸出到控制臺(tái)里了,而這里不中斷應(yīng)該是WDS本身啟用了watch模式的關(guān)系
2017年9月11日 14:48