设为首页 加入收藏

TOP

Webpack学习-Plugin(二)
2019-09-17 16:27:20 】 浏览:35
Tags:Webpack 学习 Plugin
称为 fileName 的输出资源 compilation.assets[fileName] = { // 返回文件内容 source: () => { // fileContent 既可以是代表文本文件的字符串,也可以是代表二进制文件的 Buffer return fileContent; }, // 返回文件大小 size: () => { return Buffer.byteLength(fileContent, 'utf8'); } }; callback(); }); // 读取 compilation.assets 的代码如下: compiler.plugin('emit', (compilation, callback) => { // 读取名称为 fileName 的输出资源 const asset = compilation.assets[fileName]; // 获取输出资源的内容 asset.source(); // 获取输出资源的文件大小 asset.size(); callback(); });

判断webpack使用了哪些插件

// 判断当前配置使用使用了 ExtractTextPlugin,
// compiler 参数即为 Webpack 在 apply(compiler) 中传入的参数
function hasExtractTextPlugin(compiler) {
  // 当前配置所有使用的插件列表
  const plugins = compiler.options.plugins;
  // 去 plugins 中寻找有没有 ExtractTextPlugin 的实例
  return plugins.find(plugin=>plugin.__proto__.constructor === ExtractTextPlugin) != null;
}

对于上面常用api的讲解,我们可以知道compiler和compilation在plugin中占据着举足轻重的作用,那么具体它们长什么样子的,我们编写个例子打印出来看看,下面以extract-text-webpack-plugin插件进行断点调试的截图,可以来看看这两个分别打印出来的东西,

compiler
compilation

总结

一般情况下,我们是不需要去写Plugin,但是有时候我们有些业务需求是没有插件可以满足的,那么我们便得需要自己去写Plugin,那了解Plugin的一些相关知识点就是有必要的,我们不一定要每个钩子或是API都相当熟,但是我们需要思路,了解如何编写Plugin,也是有必要的,Plugin中最重要的compiler和compilation,一个Plugin插件也就是围绕着这个去扩展,对应详细内容可以去webpack官网了解,compiler链接compilation链接

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇layui 图片与表单一起提交 + laye.. 下一篇JavaScript面试技巧之数组的一些..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目