2017-11-16 5 views
6

Ich versuche, Webpack tree-shaking zu entfernen unbenutzt babel-polyfill.Kann mit dem Webpack-Tree-Shaking unbenutzte Babel-Polyfills entfernt werden?

index.js Datei enthält:

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

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

In dieser Datei benötigen kein Code jede es2015 + polyfill, so erwartete ich Baum-Schütteln der nicht verwendeten babel-polyfills in der mitgelieferten Ausgabe zu entfernen. Es ist nicht der Fall, und das Bündel enthält sie immer noch (minimiert).

Here is a git repo with this code.

Die webpack config:

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 }) 
    ] 
} 

und .babelrc:

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

Ich versuchte mit uglifyjs-webpack-plugin zu ersetzen, aber es gab das gleiche Ergebnis.

Wie ist es möglich, von Bäumen schütteln Arbeit zu machen, und die Ausgabe enthält keine babel-polyfills, die nicht im ursprünglichen Code verwendet werden?

Antwort

1

Jetzt erkenne ich, dass babel-polyfill den globalen Bereich modifiziert, wo Baumschütteln könnte keine Auswirkungen haben ...

Das war eine dumme Frage:)

Verwandte Themen