有了这个使用webpack-encore并使用terser进行最小化的webpack.config.js,我可以成功编译,但是绝对没有任何最小化。注释和完整的变量名仍然存在。
var Encore = require('@symfony/webpack-encore');
const TerserPlugin = require('terser-webpack-plugin');
Encore
// the project directory where compiled assets will be stored
.setOutputPath('public/build/')
.setPublicPath('/build')
// the public path used by the web server to access the previous directory
.cleanupOutputBeforeBuild()
.enableSourceMaps(!Encore.isProduction())
.enableReactPreset()
.enableSassLoader()
.enableLessLoader()
.autoProvidejQuery()
.disableSingleRuntimeChunk()
.addEntry('app_prescription', [
'./assets/js/prescription/app_prescription.js'
])
.addLoader({
test: /\.jsx?$/,
exclude: /node_modules/,
loader: "babel-loader?cacheDirectory"
})
;
if( Encore.isProduction() ) {
Encore.addPlugin(new TerserPlugin({parallel: true,cache:true}) );
}
module.exports = function(env) {
Encore.enableVersioning();
const config = Encore.getWebpackConfig() ;
if( Encore.isProduction() ) {
config.optimization = {
minimizer: [new TerserPlugin({parallel: true,cache:true})]
}
}
return config ;
}
此代码有什么问题?
答案 0 :(得分:0)
对于 2021 年及以后偶然发现此问题的每个人的迟到答案:
使用 encore 的 configureTerserPlugin
方法:
Encore.configureTerserPlugin((options) => {
options.cache = true;
options.terserOptions = {
output: {
comments: false
}
}
})