Tôi cố gắng thực hiện webpack tree-shaking xóa không sử dụng babel-polyfill
.Webpack có thể lắc cây loại bỏ các polyfill không sử dụng không?
index.js
tập tin chứa:
import 'babel-polyfill'
const add4 = n => n + 4
const add5 = n => n + 5
add4(6)
console.log('boom', add4(4))
Trong tập tin này không có mã yêu cầu bất kỳ es2015 + polyfill, vì vậy tôi mong đợi cây lắc để loại bỏ các không sử dụng babel-polyfills trong đầu ra kèm. Nó không phải là trường hợp, và các gói vẫn còn chứa chúng (minified).
Here is a git repo with this code.
Các 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 })
]
}
và .babelrc
:
{
"presets": [
[
"env",
{
"targets": {
"browsers": ["chrome >= 50", "iOS >= 10", "ie >= 8"]
},
"useBuiltIns": true,
"modules": false,
"loose": true
}
]
]
}
tôi đã cố gắng để thay thế với uglifyjs-webpack-plugin
, nhưng nó đã cho kết quả tương tự.
Làm cách nào để có thể thực hiện công việc lắc lư, và đầu ra không chứa bất kỳ babel-polyfills
nào không được sử dụng trong mã gốc?