博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webpack-插件
阅读量:5915 次
发布时间:2019-06-19

本文共 1616 字,大约阅读时间需要 5 分钟。

插件(Plugins)

插件是 wepback 的功能。webpack 自身也是构建于,你在 webpack 配置中用到的相同的插件系统之上!

插件目的在于解决  无法实现的其他事。

剖析

webpack 插件是一个具有  属性的 JavaScript 对象。apply 属性会被 webpack compiler 调用,并且 compiler 对象可在整个编译生命周期访问。

 

ConsoleLogOnBuildWebpackPlugin.js

function ConsoleLogOnBuildWebpackPlugin() {};ConsoleLogOnBuildWebpackPlugin.prototype.apply = function(compiler) {  compiler.plugin('run', function(compiler, callback) {    console.log("webpack 构建过程开始!!!");    callback();  });};

 

作为一个聪明的 JavaScript 开发者,你可能还记得 
Function.prototype.apply 方法。通过这个方法你可以把任意函数作为插件传递(
this 将指向 
compiler)。你可以在配置中使用这样的方式来内联自定义插件。

用法

由于插件可以携带参数/选项,你必须在 webpack 配置中,向 plugins 属性传入 new 实例。

根据你的 webpack 用法,这里有多种方式使用插件。

配置

webpack.config.js

const HtmlWebpackPlugin = require('html-webpack-plugin'); //通过 npm 安装const webpack = require('webpack'); //访问内置的插件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: {    loaders: [      {        test: /\.(js|jsx)$/,        use: 'babel-loader'      }    ]  },  plugins: [    new webpack.optimize.UglifyJsPlugin(),    new HtmlWebpackPlugin({template: './src/index.html'})  ]};module.exports = config;

 

Node API

即便使用 Node API,用户也应该在配置中传入 
plugins 属性。
compiler.apply 并不是推荐的使用方式。

some-node-script.js

const webpack = require('webpack'); //访问 webpack 运行时(runtime)  const configuration = require('./webpack.config.js');  let compiler = webpack(configuration);  compiler.apply(new webpack.ProgressPlugin());  compiler.run(function(err, stats) {    // ...  });

 

你知道吗:以上看到的示例和   极其类似。 中隐藏有大量使用示例,你可以用在自己的配置和脚本中。

转载地址:http://buwvx.baihongyu.com/

你可能感兴趣的文章
JavaScript对象的原型(prototype)、类(class)和可扩展性(extendible)
查看>>
SegmentFault × 简寻:为你推荐最合适的技术职位
查看>>
PHP-FPM,Nginx,FastCGI 之间的关系
查看>>
深入认识Redux(一)
查看>>
读Zepto源码之Selector模块
查看>>
JavaScript基础知识整理(1)
查看>>
简述JavaScript的垃圾回收机制
查看>>
Java反射机制详解
查看>>
阿里云服务器配置开发环境第六章:Centos7.3安装vsftpd
查看>>
从一次有趣的实验学习性能优化
查看>>
JavaScript专题之如何求数组的最大值和最小值
查看>>
如何简单快速地在电脑上关联多个git或者gitlab账号
查看>>
ASP.NET MVC - 附加类型“Model Name”的实体失败,因为相同类型的另一个实体具有相同的主键值。...
查看>>
我心目中的网络接口设计到底是怎样的过程?
查看>>
webpack-dev-server
查看>>
2017-07-04 前端日报
查看>>
python发送邮件
查看>>
DIY一个自己的音乐播放器
查看>>
golang使用protobuf
查看>>
安卓开源项目周报0315
查看>>