美文网首页
webpack插件(plugins)

webpack插件(plugins)

作者: 炎武森禄 | 来源:发表于2017-02-26 10:29 被阅读0次

    插件 是webpack的backbone . webpack本身就是构建在一个同样的插件系统 ,正如你使用的webpack配置一样!

    插件也为了实现加载器不能实现的其他任何功能。.

    剖析

    一个webpack 插件是一个拥有 apply 属性的JavaScript对象。这个apply属性被webpack编译器调用,提供给整个编译生命周期访问.

    ConsoleLogOnBuildWebpackPlugin.js

    function ConsoleLogOnBuildWebpackPlugin() {
    
    };
    
    ConsoleLogOnBuildWebpackPlugin.prototype.apply = function(compiler) {
      compiler.plugin('run', function(compiler, callback) {
        console.log("The webpack build process is starting!!!");
    
        callback();
      });
    };
    

    作为一个JavaScript开发人员,你可能还记得Function.prototype.apply方法。 因为这个方法你可以传递任何函数作为插件(this将指向`编译器')。 您可以使用此方式在配置中内置自定义插件。

    用法

    插件 可以带入arguments/options,你必须传递一个new实例到你的webpack配置的plugins属性中。

    根据您使用webpack的方式,有多种方式使用插件。

    配置

    webpack.config.js

    const HtmlWebpackPlugin = require('html-webpack-plugin'); //installed via npm
    const webpack = require('webpack'); //to access built-in plugins
    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: {
        rules: [
          {
            test: /\.(js|jsx)$/,
            loader: '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'); //to access webpack runtime
      const configuration = require('./webpack.config.js');
    
      let compiler = webpack(configuration);
      compiler.apply(new webpack.ProgressPlugin());
    
      compiler.run(function(err, stats) {
        // ...
      });
    

    你知道么: 上面看到的例子与webpack runtime是非常类似的!。有很多很好的使用示例隐藏在webpack源代码 中,你可以应用到自己的配置和脚本!

    相关文章

      网友评论

          本文标题:webpack插件(plugins)

          本文链接:https://www.haomeiwen.com/subject/zqlowttx.html