humiliation
@humiliation
Чем больше знаю - тем больше дурак

Как скомпилить под IE11?

Обновил babel с 6 версии на 7ую, где-то потерялся функционал. Последний раз проверял в апреле сборку под 11 ИЕ - там работало. С тех пор переехал с axios на superagent, сейчас ие11 ругается на стрелочные функции в его коде. Не понимаю почему сборщик их не убирает. Второй день копаюсь - результатов 0. Конфиги взял типовые. Раньше конфиг бабеля был в вебпаке, я его вынес в отдельный, т.к. при переходе на 7ую версию все равно все отвалилось. Возвращаться назад принципиально не хочу.

babel.config.js
module.exports = function (api) {
  api.cache(true)

  const plugins = ['@babel/plugin-transform-runtime', '@babel/plugin-proposal-class-properties', '@babel/plugin-transform-arrow-functions']

  return {
    presets: [
      [
        '@babel/env',
        {
          targets: {
            ie: '7',
          },
          useBuiltIns: 'usage',
          corejs: 3,
        },
      ],
      ['@babel/preset-react'],
    ],
    plugins,
  }
}

/* global __dirname */


const path = require('path')
const webpack = require('webpack')
const CopyWebpackPlugin = require('copy-webpack-plugin')
const TerserPlugin = require('terser-webpack-plugin')

const dirJs = path.resolve(__dirname, 'src')
const dirHtml = path.resolve(__dirname, 'html')
const dirBuild = path.resolve(__dirname, 'build')
const dirCss = path.resolve(__dirname, 'css/styles.css')
const dirImg = path.resolve(__dirname, 'img')

module.exports = {
  mode: 'production',
  entry: ['./src/index.jsx'],

  watch: true,

  performance: {
    hints: 'warning',
  },

  devServer: {
    contentBase: dirBuild,
  },

  plugins: [
    new CopyWebpackPlugin([
      { from: dirHtml },
      { from: dirCss },
      { from: dirImg, to: './img/' },
    ]),
    new webpack.NoEmitOnErrorsPlugin(),

  ],

  module: {
    rules: [
      {
        test: /\.(js|jsx)$/,
        exclude: /node_modules/,
        loader: 'babel-loader',
      },
      {
        test: /\.css$/,
        loaders: [
          'style-loader?sourceMap',
          'css-loader?modules&importLoaders=1&localIdentName=[path]___[name]__[local]___[hash:base64:5]',
        ],
      },
      {
        loader: 'file-loader',
        options: {
          outputPath: './img/',
        },
        test: /\.svg$/,
      },
    ],
  },

  optimization: {
    minimizer: [
      new TerserPlugin({
        terserOptions: {
          output: {
            comments: false,
          },
        },
      }),
    ],
  },
  stats: {
    // Nice colored output
    colors: true,
  },
  resolve: {
    extensions: ['.js', '.jsx'],
  },

  output: {
    path: dirBuild,
    filename: 'bundle.js',
  },
  // Create Sourcemaps for the bundle
  devtool: 'none',
}


Я уже не знаю куда копать :(

В едж и выше все прекрасно работает.
  • Вопрос задан
  • 1087 просмотров
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Последняя версия superagent не содержит стрелочных функций в коде.
Если у вас в зависимостях есть проблемные пакеты, которые необходимо транспилировать, то их можно исключить из exclude регулярным выражением:
test: /\.(js|jsx)$/,
exclude: /node_modules\/(?!(trouble-package-name|other-thouble-package-name)\/).*/,
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы