Fix: Enable keep_fn_names In SWC Mangling (#3539)

* fix: swc, keep fn name

* fix: don't update swc
This commit is contained in:
Miles Murgaw authored and GitHub committed 2025-01-13 10:31:40 -08:00
1 parent 2924ec4678
commit 1419d9c71b
3 files changed
+62 -489

No files matched your search

+2 -2
View File
@@ -39,7 +39,7 @@ grass = "0.13.4"
codemap = "0.1.3"
# Js minification - swc has introduces minor versions with breaking changes in the past so we pin all of their crates
swc = "=0.283.0"
swc = "=0.285.0"
swc_allocator = { version = "=0.1.8", default-features = false }
swc_atoms = { version = "=0.6.7", default-features = false }
swc_cached = { version = "=0.3.20", default-features = false }
@@ -92,4 +92,4 @@ swc_trace_macro = { version = "=0.1.3", default-features = false }
swc_transform_common = { version = "=0.1.1", default-features = false }
swc_typescript = { version = "=0.5.0", default-features = false }
swc_visit = { version = "=0.6.2", default-features = false }
browserslist-rs = { version = "=0.16.0" }
browserslist-rs = { version = "=0.16.0" }
+7 -2
View File
@@ -4,9 +4,10 @@ use std::sync::Arc;
use anyhow::Context;
use manganis_core::JsAssetOptions;
use swc::{config::JsMinifyOptions, try_with_handler, BoolOrDataConfig};
use swc::{config::JsMinifyOptions, try_with_handler, BoolOrDataConfig, JsMinifyExtras};
use swc_common::{sync::Lrc, FileName};
use swc_common::{SourceMap, GLOBALS};
use swc_ecma_minifier::option::MangleOptions;
pub(crate) fn minify_js(source: &Path) -> anyhow::Result<String> {
let mut source_file = std::fs::File::open(source)?;
@@ -26,9 +27,13 @@ pub(crate) fn minify_js(source: &Path) -> anyhow::Result<String> {
handler,
&JsMinifyOptions {
compress: BoolOrDataConfig::from_bool(true),
mangle: BoolOrDataConfig::from_bool(true),
mangle: BoolOrDataConfig::from_obj(MangleOptions {
keep_fn_names: true,
..Default::default()
}),
..Default::default()
},
JsMinifyExtras::default(),
)
.context("failed to minify javascript")
})