您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了webpack怎么構建工具配置和常用插件,內容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。
webpack構建工具已經火了好幾年,也是當下狠火狠方便的構建工具,我們沒有理由不去學習。既然選擇webpack就要跟著時代走,我們要追隨大牛的步伐,大牛等等我。
一、webpack基礎
靜態資源文件目錄
二、webpack.config.js
const webpack = require('webpack'); module.exports = { mote:"development",//指當前的環境 /* development:開發環境 production:生產環境 none:不做任何處理 */ //入口文件,如果需求多個入口可改為對象 entry: './src/index.js', /* hot配置是否啟用模塊的熱替換功能,devServer的默認行為是在發現代碼被改后通過自動刷新整個頁面來做到事實預覽,然后設置hot后, 會在不刷新整個頁面的情況下用新模塊替換老模塊來做到實時更新。 如果選用hot:true方式來達到熱更新的效果需要引用webpack.HotModuleReplacementPlugin插件配合達到你需要的效果,另外推薦一 種簡便的方式在package.json中scripts設置如下 "scripts": { "start": "webpack-dev-server --hot --inline", }, */ // 服務器環境 devServer: { hot: true, //建議使用第二種方案 啟動服務使用命令 npm run start port:"8080",//端口默認8080,可以自行設置 host:"192.168.xx.xx", /* host配置devServer服務監聽的地址,也可以使用localhost進行訪問 瀏覽器輸入192.168.xx.xx/index.html 簡便方法在package.json中設置如下 "scripts": { "start": "webpack-dev-server --hot --inline ", }, */ }, //插件 plugins: [ //熱加載插件 new webpack.HotModuleReplacementPlugin(), ], //輸出 output: { //filename:輸出的文件名,可以自定義一些規則 filename: '[name].bundle.js', //path,配置輸出文件存放在本地的目錄 path: path.resolve(__dirname, 'dist') } };
三、插件
1、HtmlWebpackPlugin
const HtmlWebpackPlugin = require('html-webpack-plugin') plugins: [ new HtmlWebpackPlugin({ // 打包輸出HTML title: 'Hello World',//文件的標題 minify: { //minify 的作用是對 html 文件進行壓縮 removeComments: true, // 移除HTML中的注釋 collapseWhitespace: true, // 刪除空白符與換行符 minifyCSS: true, // //是否壓縮html里的css 默認值false; caseSensitive: true, //是否對大小寫敏感,默認false ollapseWhitespace: true, //是否去除空格,默認false minifyJS: true, //是否壓縮html里的js removeAttributeQuotes: true, //是否移除屬性的引號 默認false removeComments: true, //是否移除注釋 默認false emoveCommentsFromCDATA: true, //從腳本和樣式刪除的注釋 默認false emoveEmptyAttributes: true, //是否刪除空屬性,默認false removeRedundantAttributes: true, //刪除多余的屬性 removeScriptTypeAttributes: true, //刪除script的類型屬性,在h6下面script的type默認值:text/javascript 默認值false }, filename: 'index.html', //輸出的html的文件名稱 template: 'index.html', //html模板在的文件路徑 hash: true,//hash作用是給生成的js文件一個獨特的hash值,默認值為false 被構建過后的html引用js效果如下 // <script type=text/javascript src=bundle.js?22b9692e22e7be37b57e></script> }), ]
2、CleanWebpackPlugin
const { CleanWebpackPlugin } = require('clean-webpack-plugin'); plugins: [ //該插件主要用于自動刪除webpack里dist目錄中已不需要的文件 new CleanWebpackPlugin() ]
官方介紹:
By default, this plugin will remove all files inside webpack's output.path directory, as well as all unused webpack assets after every successful rebuild
3、ExtractTextWebpackPlugin
先把我們需要的東西下載好
npm install webpack css-loader style-loader extract-text-webpack-plugin --save-dev
首先配置webpack,先不使用插件完成
module.exports = { module : { rules: [ { test: /\.css$/, use:[ { loader: "style-loader" }, { loader: "css-loader" } ] } ] } }
配置好之后在js入口文件中引入樣式文件,打包查看打包結果bundle.js,會發現css被打包到了js里面,以字符串的形式存在。如果index.html中已引入打包后的bundle.js,使用瀏覽器打開index.html文件會發現css以style的形式被插到了head當中。
2.使用插件
const path = require('path'); const ExtractTextPlugin = require("extract-text-webpack-plugin"); const HtmlWebpackPlugin = require('html-webpack-plugin'); module.exports = { module : { rules: [ { test: /\.css$/, use : ExtractTextPlugin.extract({ fallback: "style-loader", use: "css-loader" }) } /* use: 指需要什么樣的loader去編譯文件 fallback: 編譯后用什么loader來提取css文件 */ ] }, plugins: [ new ExtractTextPlugin("styles.css"), new HtmlWebpackPlugin({ // 關于HtmlWebpackPlugin上文有提到 title: 'extract-text-webpack-plugin', filename: 'index.html', template: path.resolve(__dirname, 'index.html'), inject : 'head' }) ] }
以上內容配置好之后打包查看,可以發現css文件以link的方式被引在index.html的head中。期間配合HtmlWebpackPlugin插件自動插入index.html中
以上就是關于webpack怎么構建工具配置和常用插件的內容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。