[译]webpack官网文档 :概念 -- 5.插件
原创翻译,转载请注明出处。
原文地址:https://webpack.js.org/concepts/plugins/
插件是webpack的核心。Webpack本身就是在你的wepback配置文件里使用的同样的插件系统来构建的。
它还能实现加载器不能实现的其他任何事情。
解析
一个webpack插件,就是一个带有apply属性的javascript对象。apply属性被webpack编译器调用,整个编译生命周期都有这个权利。
ConsoleLogOnBuildWebpackPlugin.js
functionConsoleLogOnBuildWebpackPlugin(){ }; ConsoleLogOnBuildWebpackPlugin.prototype.apply =function(compiler){ compiler.plugin('run',function(compiler, callback){ console.log("The webpack build process is starting!!!"); callback(); }); };
用法
因为插件可以带参数或者选项,你必须在你的配置文件的plugins属性里生成一个新的实例。
根据你使用webpack的方式不同,使用插件也有不同的方法。
配置
webpack.config.js
const HtmlWebpackPlugin =require('html-webpack-plugin');//installed via npm const webpack =require('webpack');//to access built-in plugins const path =require('path'); const config ={ entry:'./path/to/my/entry/file.js', output:{ filename:'my-first-webpack.bundle.js', path: path.resolve(__dirname,'dist') }, module:{ rules:[ { test:/\.(js|jsx)$/, loader:'babel-loader' } ] }, plugins:[ newwebpack.optimize.UglifyJsPlugin(), newHtmlWebpackPlugin({template:'./src/index.html'}) ] }; module.exports = config;
Node API
some-node-script.js
const webpack =require('webpack');//to access webpack runtime const configuration =require('./webpack.config.js'); let compiler =webpack(configuration); compiler.apply(newwebpack.ProgressPlugin()); compiler.run(function(err, stats){ // ... });
-- End --