Может ли тряска дерева Webpack удалить неиспользованные вавилон-полифиллы?

Я пытаюсь сделать так, чтобы дерево упало babel-polyfill,

index.js файл содержит:

import 'babel-polyfill'
const add4 = n => n + 4
const add5 = n => n + 5
add4(6)

console.log('boom', add4(4))

В этом файле ни один код не требует какого-либо полизаполнения es2015+, поэтому я ожидал, что встряхивание дерева удалит неиспользуемые babel-polyfills из связанного вывода. Это не тот случай, и пакет все еще содержит их (минимизировано).

Вот git репо с этим кодом.

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

const MinifyPlugin = require('babel-minify-webpack-plugin')

module.exports = {
  entry: './index.js',
  output: {
    filename: 'bundle-webpack.js'
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader'
        }
      }
    ]
  },
  plugins: [
    new MinifyPlugin({ mangle: { topLevel: true } }, { comments: false })
  ]
}

а также .babelrc:

{
  "presets": [
    [
      "env",
      {
        "targets": {
          "browsers": ["chrome >= 50", "iOS >= 10", "ie >= 8"]
        },
        "useBuiltIns": true,
        "modules": false,
        "loose": true
      }
    ]
  ]
}

Я пытался заменить babel-minify-webpack-plugin с uglifyjs-webpack-plugin, но это дало тот же результат.

Как сделать так, чтобы шевеление деревьев работало, а выходные данные не содержали babel-polyfills которые не используются в оригинальном коде?

1 ответ

Решение

Теперь я понимаю, что babel-polyfill изменяет глобальную область видимости, где дрожание дерева может не иметь никакого эффекта...

Это был глупый вопрос:)

Другие вопросы по тегам