webpack 做爲當下前端前沿最受歡迎的打包工具,做爲一個前端開發人員是頗有必要去了解下它的。css
題外話: html
npm i -D 是 npm install --save-dev的簡寫,是安裝模塊並保存到package.json的devDependencies前端
安裝webpackwebpack
npm i -D webpack (穩定版)web
npm i -D webpack@<version>(指定版本號)npm
在packjson.jsonjson
"scripts": { "build": "webpack src/main.js dist/bundle.js", // 將指定文件打包到指定目錄的文件 }
而後就能夠使用命令打包 npm run build數組
一般webpack的配置文件都會放在webpack.config.js文件中(這個是webpack會去默認讀取的)服務器
基礎內容:webpack-dev-server
const path = require('path'); module.exports = { // JavaScript 執行入口文件 entry: './main.js', output: { // 將全部依賴的模塊合併輸出到一個bundle.js文件 filename: 'bundle.js', // 將輸出文件都放在dist目錄下 path: path.resolve(__dirname, './dist'), }, module: { rules: [ { // 用正在向嗯表達式去匹配要用該Loader轉換的CSS文件 test: /\.css$/, use: ['style-loader', 'css-loader?minimize'] } ] } };
須要安裝Loader npm i -D style-loader css-loader
解讀
Plugin是用來擴展Webpack功能的,經過在構建流程裏注入鉤子實現,它爲Webpack帶來了很大的靈活性。
配置方面: plugins屬性是一個數組,裏面的每一項都是插件的一個實例,在實例化一個組件時能夠經過構造函數傳入這個組件支持的配置屬性。
做用:
安裝: npm i -D webpack-dev-server
啓動配置:
"build": "webpack-dev-server --hot --devtool source-map"
當你啓動的時候會看到這樣一串日誌:
Project is running at http://localhost:8081/
webpack output is served from /
這意味着DevServer啓動的HTTP服務器在8081端口,DevServer啓動後會一直主流在後臺保持運行,訪問這個網址,就能獲取項目根目錄下的index.html
這時候還不會造成打包文件。
實施預覽:
開啓: webpack --watch
這樣的話就會實施知道改動代碼就會進行更新客戶端的內容(這回刷新整個頁面)
模塊熱替換:
開啓: --hot
這樣的話,代碼更改只會實現局部刷新
支持Source Map
開啓 --devtool source-map
總結: