webpack 之 plugin 插件

发布于 2024-10-31 17:00:40 字数 1306 浏览 4 评论 0

本质

是一个具有 apply 方法的 JavaScript 对象
apply 方法会被 webpack compiler 调用,并且在整个编译生命周期都可以访问 compiler 对象

const pluginName = 'ConsoleLogOnBuildWebpackPlugin';
class ConsoleLogOnBuildWebpackPlugin {
  apply(compiler) {
    compiler.hooks.run.tap(pluginName, compilation => {
      console.log('webpack 构建过程开始')
    });
  }
}
module.exports = ConsoleLogOnBuildWebpackPlugin
// compiler hook 的 tap 方法的第一个参数,应该是驼峰式命名的插件名称。
// 建议为此使用一个常量,以便它可以在所有 hook 中重复使用

用法

const HtmlWebpackPlugin = require('html-webpack-plugin')
//  ...
plugins: [
  new HtmlWebpackPlugin({template: './src/index.html'})
]

访问内置的插件

const webpack = require('webpack')
// ...
plugins: [
  new webpack.ProgressPlugin()
]

Node API 方式

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) {
  // ...
})

::: alert 如果插件中使用了 webpack-sources 的 package,请使用 require('webpack').sources 替代 require('webpack-sources'),以避免持久缓存的版本冲突 :::

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

ぇ气

暂无简介

0 文章
0 评论
21 人气
更多

推荐作者

謌踐踏愛綪

文章 0 评论 0

开始看清了

文章 0 评论 0

高速公鹿

文章 0 评论 0

alipaysp_PLnULTzf66

文章 0 评论 0

热情消退

文章 0 评论 0

白色月光

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文