Проблема: я хочу создать пакетные файлы для веб-сайта для старых браузеров (> = IE10).
Мой транспилированный код вызывает ошибки в старом Internet Explorer 11, когда я транспилирую код с babel 7.x
, используя babel-loader
, поскольку кажется, что node_modules
модули больше не будут переноситься по умолчанию?
Вопрос: Как я могу убедиться, что все мои node_module
модули будут перенесены, если они еще не были перенесены автором пакета?
webpack.config.js с использованием babel-loader
// webpack.config.js
rules: [
{
test: /\.(js|jsx)$/,
use: [
{
loader: 'babel-loader',
},
],
exclude: [],
},
],
Конфигурация babelrc.js с использованием babel 7.x
// .babelrc.js
module.exports = function(api) {
const presets = [
[
'@babel/preset-env',
{
useBuiltIns: 'usage',
ignoreBrowserslistConfig: true,
targets: {
node: 8,
browsers: [
'last 3 versions',
'> 1% in DE',
'Explorer >= 10',
],
},
},
],
'@babel/preset-react',
];
const plugins = [
// ...
];
return {
presets,
plugins,
};
};
Обновление 1:
Это была проблема с babel. Моя конфигурация babel была названа .babel.rc
, а настройка babel 7 по умолчанию - искать файл конфигурации с именем babel.config.js
, см. здесь.
Итак, после переименования файла конфигурации babel из ´.babel.rc´ в ´babel.config.js´ я мог применить решение в моем ´webpack.config.js´ описанном здесь, чтобы преобразовать нетрансформированные пакеты« node_modules »с помощью такого решения:
// webpack.config.js
rules: [
{
test: /\.(js|jsx)$/,
use: [
{
loader: 'babel-loader',
},
],
// Exclude the untransformed packages from the exclude rule here
exclude: /node_modules\/(?!(MY_MODULE|ANOTHER-ONE)\/).*/,
},
],
Вопрос: Это похоже на обходной путь, но нет ли более удобного способа решения таких проблем? Я просто притворяюсь, что в ближайшем будущем будет все больше и больше нетрансформированных пакетов (после это обсуждение) и всегда ли мы должны вручную помещать имена пакетов для этого в exclude
правило webpacks ??
exclude: []
опциям. - person PlayMa256   schedule 04.01.2019webpack.config.js
? Я уже пробовал это, но это ничего не меняет. То же самое для добавленияexclude: []
в конфигурацию.babelrc.js
, без изменений. - person Michael   schedule 04.01.2019babel.config.js
, см. Здесь: babeljs.io/docs/en/options#configfile. Итак, после переименования файла конфигурации решениеexclude: /node_modules\/(?!(MY_MODULE |ANOTHER-ONE)\/).*/,
теперь работает нормально. - person Michael   schedule 07.01.2019