用CRA +脚本调用webpack.ignorePlugin到摇树式Moment.js语言环境

问题描述

我将CRA +与rescripts一起使用

我想摇晃Moment.js语言环境,与ignorePlugin Webpack文档中显示的方式完全相同:

new webpack.IgnorePlugin({
  checkResource (resource) {
    // do something with resource
    return true|false;
  }
});

我知道我可以使用脚本轻松地转换webpack配置:

config => {
   const newConig = ...
   return newConfig
}

但是如何握住webpack对象来调用IgnorePlugin方法-还是获得相同的结果?

如有必要,我愿意从脚本改成react-app-rewired之类的替代文本。

解决方法

生成的配置应该有一个 plugins 选项。

假设您的 newConfig 继承了所有 config 选项。通常,newConfig.plugins 将指向继承的默认插件数组。

要增强/扩展插件列表,您只需更改该数组,即。只需将您的插件推送到该 newConfig.plugins 数组中的任何索引(例如最后一个)。

示例:

const Webpack = require("webpack");

function webpack(config,env) {
  const newConfig = Object.assign({},config);
  newConfig.plugins = newConfig.plugins || [];

  const myPlugin = new Webpack.IgnorePlugin({
    checkResource(resource) {
      // do something with resource
      return true | false;
    }
  });

  newConfig.plugins.push(myPlugin);

  return newConfig;
}

module.exports = { webpack };