Возможная ошибка распространения в IE 11 (Webpack, VueJS)? - PullRequest
0 голосов
/ 18 ноября 2018

Я получаю эту ошибку в IE 11:

enter image description here enter image description here

Вот мои настройки веб-пакетов и Babel:

конфигурация веб-пакета

const path = require('path');
const webpack = require('webpack');
const { VueLoaderPlugin } = require('vue-loader');
const StylishWebpackPlugin = require('webpack-stylish');
const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');

const withLogRocket = process.argv.includes('--with-logrocket');
if (withLogRocket) {
  /* eslint-disable no-console */
  console.info('-> Building with LogRocket enabled.');
  /* eslint-enable */
}

// Base webpack configuration for all environments.
module.exports = {
  context: path.dirname(__dirname),
  entry: {
    app: './src/main.js',
  },
  target: 'web',

  output: {
    filename: '[name].[contenthash].js',
    hashDigestLength: 8,
  },

  resolve: {
    extensions: ['.ts', '.js', '.vue'],
    alias: {
      '@': path.resolve(__dirname, '../src'),
    },
  },

  module: {
    rules: [
      {
        test: /\.js/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
        },
      },
      {
        test: /\.ts$/,
        exclude: /node_modules/,
        use: [
          {
            loader: 'babel-loader',
          },
          {
            loader: 'ts-loader',
            options: {
              transpileOnly: true,
            },
          },
        ],
      },
      {
        test: /\.vue$/,
        loader: 'vue-loader',
      },
      {
        test: /\.css$/,
        use: [
          'style-loader',
          'css-loader',
        ],
      },
      {
        test: /\.scss$/,
        use: [
          'style-loader',
          'css-loader',
          'sass-loader',
        ],
      },
    ],
  },

  stats: 'errors-only',

  plugins: [
    new VueLoaderPlugin(),
    new ForkTsCheckerWebpackPlugin({
      tslint: true,
      reportFiles: ['src/**/*.ts'],
    }),
    new StylishWebpackPlugin(),
    new webpack.DefinePlugin({
      USE_LOGROCKET: withLogRocket,
    }),
  ],
};

файл babelrc

{
    "presets": ["env"],
    "plugins": [
        "transform-es2015-destructuring",
        "transform-object-rest-spread"
    ]
}

Я не совсем уверен, связано ли это с распространением ...sources или с другими.Я почти уверен, что у меня есть пакет babel-transform-object-rest-spread, но я до сих пор не понимаю, почему у меня есть эта ошибка, я также использовал babel-preset-env.Как вы можете видеть из конфигурации, я запускаю чистое приложение JS (VueJS, typcript).Я читал многочисленные посты об использовании polyfill и других, но это не помогло мне запустить приложение на IE11.

1 Ответ

0 голосов
/ 18 ноября 2018

Вы используете предустановку env, но никогда не определяете, для какой среды Babel должен генерировать код (поэтому я предполагаю, что IE 11 не поддерживается в этом случае).

Без каких-либо опций конфигурации babel-preset-env ведет себя точно так же, как babel-preset-latest (или babel-preset-es2015, babel-preset-es2016 и babel-preset-es2017 вместе).

Так что просто добавьте объект параметров со свойством targets, установленным во что-то вроде

"browsers": [ "last 1 version", "ie >= 11" ]

как это:

{
    "presets": ["env", {
      "targets": {
        "browsers": [ "last 1 version", "ie >= 11" ]
      }
    }],
    "plugins": [
        "transform-es2015-destructuring",
        "transform-object-rest-spread"
    ]
}

Я также настоятельно рекомендую вам как можно скорее перейти на Babel 7.

...