【webpack核心】- 5、webpack配置文件

1、命令參數很多時,配置文件更靈活

webpack提供的cli/命令支持很多的參數(cli是命令行界面的縮寫),例如–mode,但命令很多的時候,我們會使用更加靈活的配置文件來控制webpack的行爲

默認情況下,webpack會讀取webpack.config.js文件作爲配置文件,但也可以通過CLI參數--config來指定某個配置文件

#修改webpack的配置文件
npx webpack --config  xx.js

2、webpack配置文件中必須是commonjs規範

配置文件中通過CommonJS模塊導出一個對象(只能用commonjs標準,用es6模塊化導出會報錯!!!),對象中的各種屬性對應不同的webpack配置

module.exports={
	//必須用commonjs標準
}

問題:webpack支持多種模塊化標準,爲什麼配置文件裏只能用commonjs導出,而不能用es6標準導出?
答案

  1. webpack支持多種模塊化標準,指的是開發時態構建依賴關係的時候,無論使用commonjs/es6等標準的時候,都能識別
  2. 讀取webpack的配置文件的內容是在打包的過程中讀的,打包的過程就是讀取webpack配置文件內容 並 運行,打包過程是在node環境裏執行的,必須用commonjs
  3. 讀取配置文件後,就要構建依賴關係,構建依賴關係時不會運行 開發時態的代碼
    總結:1、webpack.config.js 裏的代碼是在編譯的過程中運行的代碼,運行環境是node環境,所以必須是commonjs 規範,2、而我們要打包的src下的源代碼,在打包的過程中是不會運行的,只是把代碼內容讀出來,來分析依賴關係,最終形成打包結果, 3、 最終運行的是打包結果
import xx from './xx';
//這句話在打包的時候不會運行,只是webpack用來識別依賴的,而打包完後dist裏的代碼纔會運行,dist裏面沒有模塊化代碼

注意:配置文件中的代碼,必須是有效的node代碼
打包過程中運行webpack.config.js,而src裏的代碼只是被讀出來,不會被運行

3、基本配置

當命令行參數與配置文件中的配置出現衝突時,以命令行參數爲準

基本配置:

mode:編譯模式,字符串,取值爲development或production,指定編譯結果代碼運行的環境,會影響webpack對編譯結果代碼格式的處理
entry:入口,字符串,指定入口文件
output:出口,對象,指定編譯結果文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章