Я работаю в проекте с 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 без переноса, чего не происходит в моих файлах ресурсов.
IЯ использую файл babelrc для настройки Babel:
{
"presets": [
[
"@babel/preset-env",
{
"debug": true,
"useBuiltIns": "usage",
"corejs": 3,
"targets": "> 0.25%, not dead"
}
]
]
}
Странная вещь в том, что если я настраиваю Babel через файл webpack.config.js:
.configureBabel(function(babelConfig) {
}, {
include_node_modules: ['bootstrap']
})
, он работает отлично.Так что я не знаю разницы между этими двумя решениями.Есть ли какая-либо деталь реализации в этом случае, которая делает первое решение недействительным (как я уже говорил, в прошлом году оно работало хорошо)?