使用教程(一)--- entry,devtool,output,resolve
使用教程(二)--- module.loaders
Webpack版本 3.10.0
plugins: [ new webpack.DefinePlugin({ 'process.env': require('../config/dev.env') }), new webpack.HotModuleReplacementPlugin(), new HtmlWebpackPlugin({ filename: 'index.html', template: 'index.html', inject: true }), ]
每一個插件實例是一個具備 apply 屬性的 js 對象 (Function.prototype.apply
)。css
const webpack = require('webpack'); const configuration = require('./webpack.config.js'); let compiler = webpack(configuration); function HelloWorldPlugin (options) { // do something... } // this 指向了 compiler。 HelloWorldPlugin.prototype.apply = function (compiler) { // compiler.plugin(),可看做綁定事件,打包時會觸發事件。 compiler.plugin('run', function() { console.log('hello world!') }); };
DefinePlugin:它的做用是定義全局常量,是常量。即在模塊用它定義的全局常量,那麼你就不能改變它的值啦。用法例子:html
//webpack.config.js Plugins: [ new webpack.DefinePlugin({ '_ABC_': false }) ] // 在某個要打包的js模塊裏 if (_ABC_){ console.log('_ABC_是 true,纔看得見這輸出'); }
配置屬性 | 數據類型 | 做用 |
---|---|---|
multiStep | Boolean | 若是 true 插件將分兩步創建。首先編譯常更新的模塊,而後編譯剩餘的普通資源。 |
fullBuildTimeout | Number | multiStep 爲 true,啓用兩步之間的延遲。 |
requestTimeout | Number | 下載某些東西的超時時間 |
官方講,這些 options 可能會被棄用
,就 new webpack.HotModuleReplacementPlugin()
就能夠了。jquery
Plugins: [ $: 'jquery' ] // 不用導入 jquery ,均可用 $。 // 能夠理解爲在全局就 import $ from 'jquery' 或 const $ = require('jquery')
// 安裝 npm install --save-dev html-webpack-plugin // 導入 const HtmlWebpackPlugin = require('html-webpack-plugin'); // 使用 new HtmlWebpackPlugin({ filename: 'index.html', template: 'index.html', inject: true ... // 其餘配置,可看下面。 })
inject:'true' | 'head' | 'body' | 'false' 。webpack
minify: {...} | 'false' 。
{...}:經過 html-minifier 的選項對象,來減少打包後文件的大小。在生產環境通常用到。看看裏面通常用到什麼吧。git
removeAttributeQuotes:若是 true ,則儘量地去掉 html 裏標籤元素屬性的引號,有些特定屬性則不會。( 請注意,HTML規範建議始終使用引號。謹慎使用這選項
)github
<p id="abc" title="hello world"></P> 轉換爲: <p id=abc title="hello world"></p> // 可見有些特定的屬性是不會去掉引號的。
chunksSortMode:'none' | 'auto' | 'dependency' |'manual' | {function} 。
做用:對注入 html 中的 js 模塊進行排序。默認:'auto' (自動排序)web
plugins 就講到這裏了,以上都是一些常見經常使用的插件,喜歡的朋友能夠點波贊,謝謝啦。npm