webpack構建技巧之開發篇

2021-09-10 02:33:16 字數 2325 閱讀 3121

先看下專案目錄:

entry: __dirname + '/../src/main.js' //__dirname是當前檔案所在資料夾目錄
或者

const path = require('path');

entry: path.resolve(__dirname, '../src/main.js')

乾脆定義個函式:

function resolve(dir)  

module.exports =

output: ,
定義處理各個模組的規則:

js:

},

images:

}]

},

media:

},

fonts:

},

css:

//require的依賴要先npm安裝

),],

},},

'less-loader' //這裡使用了less

],},

]

},

webpack4+需要使用這個屬性指定開發環境,不然瀏覽器會發出警告

mode: 'development' //生產環境  'production'
devserver: 

},

各屬性介紹:webpack開發中[dev-server]

plugins: [

new webpack.namedmodulesplugin(), //當開啟 hmr 的時候使用該外掛程式會顯示模組的相對路徑,建議用於開發環境。,webpack4+ mode為development時預設加了這個外掛程式,可以不用寫

new webpack.hotmodulereplacementplugin(), //啟用hmr

new htmlwebpackplugin(),

],new copywebpackplugin([ //複製你的靜態檔案,就是僅僅是複製那些你不需要處理的檔案

])

在你的package.json檔案的scripts中加乙個start

"start": "webpack-dev-server --inline --progress --config config/webpack.dev.conf.js",
npm start 就可以開始你的開發了。生產環境的構建可以看我另一篇博文:webpack構建技巧之生產篇。

完整版本請移步:

最後附上完整的webpack.dev.conf.js檔案:

'use strict'

const webpack = require('webpack');

const path = require('path');

const htmlwebpackplugin = require('html-webpack-plugin');

const autoprefixer = require('autoprefixer');

const copywebpackplugin = require('copy-webpack-plugin');

function resolve(dir)

module.exports = ,

devtool: "eval-source-map",

module: ]

},}]

},},

},},

),],

},}, 'less-loader'

],},

],},

devserver:

},mode: "development",

plugins: [

new webpack.namedmodulesplugin(),

new webpack.hotmodulereplacementplugin(),

new htmlwebpackplugin(),

new copywebpackplugin([

])],

}

webpack之構建日誌

當我們執行構建命令時候,會出現如下效果 事實上,很多時候我們並不關注這些,只關注是否構建成功和錯誤資訊。下面我們就一起來解決這個需求,讓我們的命令列清爽整潔 通過在webpack.config.js中設定stats 統計資訊stats 只是通過這種方式來設定,當我們構建成功後,命令列什麼都沒有輸出,...

雜談之webpack篇

預留個空位,待上線。先學習react,回來補上。又看了webpack的文件不知道該怎麼下筆好,還是先寫react 吧,對webpack理解加深了在補。現在補一點webpack的知識。之前之所以不知道怎麼寫是因為把react和webpack當成離散的知識點了,而實際應用應該把離散的知識貫穿起來。首先應...

webpack打包構建之效能優化

1 寫es6時需要轉換工具babel,我們可以只需src目錄上轉換 rules 2 靜態資源優化,如果靜態資源不大,建議用位元組處理 module plugins loaders babel loader?cachedirectory 開啟4個執行緒 threads 4 4 使用splitchunk...