diff --git a/server/build.go b/server/build.go index d2032d13..c9619a44 100644 --- a/server/build.go +++ b/server/build.go @@ -25,9 +25,10 @@ type BuildTask struct { Alias map[string]string `json:"alias"` Deps PkgSlice `json:"deps"` Target string `json:"target"` + DevMode bool `json:"dev"` BundleMode bool `json:"bundle"` NoRequire bool `json:"noRequire"` - DevMode bool `json:"dev"` + KeepNames bool `json:"keepNames"` // state id string @@ -50,6 +51,9 @@ func (task *BuildTask) ID() string { if task.NoRequire { name += ".nr" } + if task.KeepNames { + name += ".kn" + } if task.DevMode { name += ".development" } @@ -329,7 +333,7 @@ esbuild: MinifyWhitespace: !task.DevMode, MinifyIdentifiers: !task.DevMode, MinifySyntax: !task.DevMode, - KeepNames: true, // prevent class/function names erasing + KeepNames: task.KeepNames, // prevent class/function names erasing Plugins: []api.Plugin{esmResolverPlugin}, Loader: map[string]api.Loader{ ".wasm": api.LoaderDataURL, diff --git a/server/query.go b/server/query.go index 16752fda..f316d6a2 100644 --- a/server/query.go +++ b/server/query.go @@ -409,6 +409,7 @@ func query(devMode bool) rex.Handle { isWorker := ctx.Form.Has("worker") noCheck := ctx.Form.Has("no-check") noRequire := ctx.Form.Has("no-require") + keepNames := ctx.Form.Has("keep-names") // force react/jsx-dev-runtime and react-refresh into `dev` mode if !isDev { @@ -454,6 +455,10 @@ func query(devMode bool) rex.Handle { submodule = strings.TrimSuffix(submodule, ".development") isDev = true } + if endsWith(submodule, ".kn") { + submodule = strings.TrimSuffix(submodule, ".kn") + keepNames = true + } if endsWith(submodule, ".nr") { submodule = strings.TrimSuffix(submodule, ".nr") noRequire = true @@ -538,9 +543,10 @@ func query(devMode bool) rex.Handle { Alias: alias, Deps: deps, Target: target, + DevMode: isDev, BundleMode: isBundleMode || isWorker, NoRequire: noRequire, - DevMode: isDev, + KeepNames: keepNames, stage: "init", } taskID := task.ID()