Skip to content

Commit 2753e1c

Browse files
committed
feat: improve sourcemap support
1 parent c21a33b commit 2753e1c

File tree

7 files changed

+29
-23
lines changed

7 files changed

+29
-23
lines changed

src/build/plugins.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import { rollupNodeFileTrace } from "nf3";
1818
import { rendererTemplate } from "./plugins/renderer-template.ts";
1919
import { featureFlags } from "./plugins/feature-flags.ts";
2020
import { nitroResolveIds } from "./plugins/resolve.ts";
21+
import { sourcemapMinify } from "./plugins/sourcemap-min.ts";
2122

2223
export function baseBuildPlugins(nitro: Nitro, base: BaseBuildConfig) {
2324
const plugins: Plugin[] = [];
@@ -131,5 +132,14 @@ export function baseBuildPlugins(nitro: Nitro, base: BaseBuildConfig) {
131132
);
132133
}
133134

135+
// Minify
136+
if (
137+
nitro.options.sourcemap &&
138+
!nitro.options.dev &&
139+
nitro.options.experimental.sourcemapMinify !== false
140+
) {
141+
plugins.push(sourcemapMinify());
142+
}
143+
134144
return plugins;
135145
}

src/build/plugins/sourcemap-min.ts

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,20 @@ export function sourcemapMinify() {
1313
) {
1414
continue;
1515
}
16+
1617
// Parse sourcemap
1718
const sourcemap: ExistingRawSourceMap = JSON.parse(asset.source);
18-
// Only process sourcemaps with node_module sources
19-
if (
20-
!(sourcemap.sources || []).some((s) => s.includes("node_modules"))
21-
) {
22-
continue;
19+
20+
// Remove sourcesContent
21+
delete sourcemap.sourcesContent;
22+
23+
// Remove x_google_ignoreList
24+
delete sourcemap.x_google_ignoreList;
25+
26+
if ((sourcemap.sources || []).some((s) => s.includes("node_modules"))) {
27+
sourcemap.mappings = ""; // required key
2328
}
24-
// TODO: Try to treeshake mappings instead
25-
sourcemap.mappings = "";
29+
2630
asset.source = JSON.stringify(sourcemap);
2731
}
2832
},

src/build/rollup/config.ts

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import json from "@rollup/plugin-json";
1010
import { nodeResolve } from "@rollup/plugin-node-resolve";
1111
import { replace } from "../plugins/replace.ts";
1212
import { oxc } from "../plugins/oxc.ts";
13-
import { sourcemapMinify } from "../plugins/sourcemap-min.ts";
1413
import { baseBuildConfig } from "../config.ts";
1514
import { baseBuildPlugins } from "../plugins.ts";
1615
import { raw } from "../plugins/raw.ts";
@@ -156,14 +155,5 @@ export const getRollupConfig = (nitro: Nitro): RollupConfig => {
156155
delete config.output.manualChunks;
157156
}
158157

159-
// Minify
160-
if (
161-
nitro.options.sourcemap &&
162-
!nitro.options.dev &&
163-
nitro.options.experimental.sourcemapMinify !== false
164-
) {
165-
config.plugins.push(sourcemapMinify());
166-
}
167-
168158
return config;
169159
};

src/build/vite/env.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ export function createNitroEnvironment(
3131
rollupOptions: ctx.rollupConfig!.config as any,
3232
minify: ctx.nitro!.options.minify,
3333
emptyOutDir: false,
34+
sourcemap: ctx.nitro!.options.sourcemap,
3435
commonjsOptions: {
3536
...(ctx.nitro!.options.commonJS as any),
3637
},
@@ -64,6 +65,7 @@ export function createServiceEnvironment(
6465
build: {
6566
rollupOptions: { input: serviceConfig.entry },
6667
minify: ctx.nitro!.options.minify,
68+
sourcemap: ctx.nitro!.options.sourcemap,
6769
outDir: join(ctx.nitro!.options.buildDir, "vite/services", name),
6870
emptyOutDir: true,
6971
},

src/build/vite/rollup.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import type { NitroPluginContext } from "./types.ts";
1616
* - nodeResolve
1717
* - commonjs
1818
* - esbuild
19-
* - sourcemapMininify
19+
* - sourcemapMinify
2020
* - json
2121
* - raw
2222
*

test/minimal/minimal.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ const tmpDir = fileURLToPath(new URL(".tmp", import.meta.url));
1111

1212
// Rounded up
1313
const bundleSizes: Record<string, [kb: number, minKB: number]> = {
14-
rollup: [15, isWindows ? 10 : 9],
15-
rolldown: [20, 8],
16-
vite: [18, 10],
17-
"rolldown-vite": [17, 10],
14+
rollup: [16, isWindows ? 12 : 11],
15+
rolldown: [20, 9],
16+
vite: [19, 12],
17+
"rolldown-vite": [18, 11],
1818
};
1919

2020
describe("minimal fixture", () => {

test/minimal/nitro.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@ import { defineNitroConfig } from "nitro/config";
22

33
export default defineNitroConfig({
44
preset: "standard",
5-
sourcemap: false,
5+
// sourcemap: false,
66
});

0 commit comments

Comments
 (0)