Webpack 插件 plugin
loader 用于转换某些类型的模块,而插件则可以用于执行范围更广的任务,在于解决 loader 无法实现的其他事。包括:打包优化,资源管理,注入环境变量。
剖析
webpack 插件是一个具有 apply
方法的 JavaScript 对象。 apply
方法会被 webpack compiler 调用,并且 compiler 对象可在整个编译生命周期访问。
# ConsoleLogOnBuildWebpackPlugin.js
const pluginName = 'ConsoleLogOnBuildWebpackPlugin';
class ConsoleLogOnBuildWebpackPlugin {
apply(compiler) {
// compiler hook 的 tap 方法的第一个参数,应该是驼峰式命名的插件名称。建议为此使用一个常量,以便它可以在所有 hook 中复用。
compiler.hooks.run.tap(pluginName, compilation => {
console.log('webpack 构建过程开始!');
});
}
}
用法
webpack 提供许多开箱可用的插件 https://v4.webpack.docschina.org/plugins ,使用一个插件,只需要 require()
它,然后把它添加到 plugins
数组中。
多数插件可以通过选项(option) 自定义,插件可以携带参数/选项。也可以在一个配置文件中因为不同目的而多次使用同一个插件,这时需要向 plugins
属性传入 new
实例。
Node API
在使用 Node API 时,还可以通过配置中的 plugins
属性传入插件。
# some-node-script.js
const webpack = require('webpack'); //访问 webpack 运行时(runtime)
const configuration = require('./webpack.config.js');
let compiler = webpack(configuration);
new webpack.ProgressPlugin().apply(compiler);
compiler.run(function(err, stats) {
// ...
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: Webpack loader
下一篇: 彻底找到 Tomcat 启动速度慢的元凶
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论