Вавилон не создал ожидаемые полифилы - PullRequest
0 голосов
/ 16 апреля 2020

Я использую веб-пакет с babel и списком браузеров, но он не поддерживает все браузеры, перечисленные в списке браузеров. Я протестировал его в IE11, и, например, функция append , похоже, не имеет полифилла. У меня есть определение списка браузеров в пакете. json, которое было проблемой в @ babel-preset-env до 6.0.0, но должно быть исправлено.)

Вот содержимое моего .babelr c:

{
  "presets": [
    "@babel/typescript",
    [
      "minify",
      {
        "evaluate": true,
        "mangle": true,
        "builtIns": false
      }
    ],
    [
      "@babel/preset-env",
      {
        "useBuiltIns": "usage",
        "corejs": "3.0.0"
      }
    ]
  ],
  "plugins": [
    "lodash",
    "@babel/plugin-syntax-dynamic-import",
    "@babel/plugin-proposal-class-properties",
    "@babel/proposal-object-rest-spread"
  ]
}

Это часть пакета. json, где я определяю список браузеров (не очень):

"browserslist": [
   "defaults"
],

А вот мой сокращенный конфиг Webpack :

...

module.exports = {
    devtool: 'source-map',
    ...
    optimization: {
        splitChunks: {
          chunks: 'all',
          name: false
        }
    },
    plugins: [
        new CleanWebpackPlugin(),
    ...
        new DuplicatePackageCheckerPlugin()
    ],
    resolve: {
        alias: {
          '~': Path.resolve(__dirname, '../src')
        },
        extensions: ['.ts', '.js', '.scss']
    },
      module: {
        rules: [
          {
            test: /\.ts?$/,
            include: Path.resolve(__dirname, '../src'),
            use: 'babel-loader'
          },
          {
            test: /\.mjs$/,
            include: /node_modules/,
            type: 'javascript/auto'
          },
          {
            test: /\.(ico|jpg|jpeg|png|gif|webp)(\?.*)?$/,
            use: {
              loader: 'file-loader',
              options: {
                name: '[path][name].[ext]'
              }
            }
          },
          {
            test: /\.(woff2?|ttf|eot|svg)$/,
            use: [
              {
                loader: 'url-loader',
                options: {
                  limit: 10000,
                  name: 'fonts/[name].[ext]'
                }
              }
            ]
          },
        {
            test: /\.js$/,
            include: Path.resolve(__dirname, '../src'),
            enforce: 'pre',
            loader: 'eslint-loader',
            options: {
              emitWarning: true
            }
          },
          {
            test: /\.js$/,
            use: ["source-map-loader"],
            enforce: "pre"
          },
          {
            test: /\.s?css$/i,
            use: ['style-loader', 'css-loader?sourceMap=true', 'resolve-url-loader', 'sass-loader']
          }
        ]
      }
    };

Я также использую машинопись, с этим tsconfig. json:

{
  "compilerOptions": {
    "module": "es6",
    "target": "esnext",
    "outDir": "./dist/",
    "moduleResolution": "node",
    "strict": true,
    "locale": "de",
    "allowSyntheticDefaultImports": true,
    "isolatedModules": true,
    "resolveJsonModule": true,
    "sourceMap": true,
    "esModuleInterop": true,
    "forceConsistentCasingInFileNames": true,
    "types": [
      "babylonjs",
      "node"
    ]
  },
  "exclude": [
    "node_modules"
  ]
}
...