Webpack Encore允许node_modules中的babel转译文件

时间:2019-04-09 18:40:30

标签: symfony webpack symfony4 webpack-encore symfony-4.2

我正在与Webpack Encore一起在一个项目中工作,我对如何允许Babel处理node_modules中的文件有疑问。

去年,我找到了一种解决方案,允许Babel使用以下方式处理node_modules中的文件:

const webpackConfig = Encore.getWebpackConfig();
const babelLoader = webpackConfig.module.rules.find(rule => { 
  if (rule.use && rule.use[0]) {
    const firstUse = rule.use[0];
    return firstUse.loader === 'babel-loader';
  } 
  return false;
});
babelLoader.exclude = /node_modules\/(?!bootstrap\/).*/;
module.exports = webpackConfig;

但是在最近的版本中,当我运行yarn run encore production时,我是从Bootstrap获取文件而没有进行编译的,这在我的资产文件中不会发生。

我正在使用文件babelrc来配置Babel:

{
    "presets": [
      [
        "@babel/preset-env",
        {
          "debug": true,
          "useBuiltIns": "usage",
          "corejs": 3,
          "targets": "> 0.25%, not dead"
        }
      ]
    ]
  }

奇怪的是,如果我通过webpack.config.js文件配置Babel:

  .configureBabel(function(babelConfig) {
   }, {
       include_node_modules: ['bootstrap']
   })

它运作完美。所以我不知道两种解决方案之间的区别。在这种情况下,是否有任何实施细节导致第一个解决方案无效(如我所说,去年效果很好)?

0 个答案:

没有答案
相关问题