diff --git a/craco.config.js b/craco.config.js index b2f871d4..ce1395b5 100644 --- a/craco.config.js +++ b/craco.config.js @@ -112,14 +112,18 @@ module.exports = { const TerserPlugin = require('terser-webpack-plugin'); webpackConfig.optimization.minimizer = webpackConfig.optimization.minimizer.map(plugin => { if (plugin.constructor.name === 'TerserPlugin') { + const originalOptions = plugin.options || {}; + const originalTerserOptions = originalOptions.terserOptions || {}; + const originalMangle = originalTerserOptions.mangle || {}; + return new TerserPlugin({ - ...plugin.options, + ...originalOptions, terserOptions: { - ...plugin.options.terserOptions, + ...originalTerserOptions, keep_classnames: /^(IChartApi|ISeriesApi|Re)$/, // 保留 lightweight-charts 的类名 keep_fnames: /^(createChart|addLineSeries|addSeries)$/, // 保留关键方法名 mangle: { - ...plugin.options.terserOptions.mangle, + ...originalMangle, reserved: ['createChart', 'addLineSeries', 'addSeries', 'IChartApi', 'ISeriesApi'], }, },