Webpack 插件 plugin

发布于 2024-06-05 12:39:26 字数 1557 浏览 27 评论 0

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 技术交流群。

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

发布评论

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

关于作者

荒芜了季节

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

我们的影子

文章 0 评论 0

素年丶

文章 0 评论 0

南笙

文章 0 评论 0

18215568913

文章 0 评论 0

qq_xk7Ean

文章 0 评论 0

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