Skip to content

Commit 2989d6b

Browse files
authored
perf!: resolve virtual templates with single plugin (#3819)
1 parent dd47a8d commit 2989d6b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+637
-653
lines changed

src/build/plugins.ts

Lines changed: 9 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,19 @@
11
import type { Nitro, NodeExternalsOptions } from "nitro/types";
22
import type { Plugin } from "rollup";
33
import type { BaseBuildConfig } from "./config.ts";
4-
import { hash } from "ohash";
54
import { defu } from "defu";
65
import unimportPlugin from "unimport/unplugin";
76
import { unwasm } from "unwasm/plugin";
87
import replace from "@rollup/plugin-replace";
9-
import { database } from "./plugins/database.ts";
10-
import { routing } from "./plugins/routing.ts";
118
import { routeMeta } from "./plugins/route-meta.ts";
129
import { serverMain } from "./plugins/server-main.ts";
13-
import { publicAssets } from "./plugins/public-assets.ts";
14-
import { serverAssets } from "./plugins/server-assets.ts";
15-
import { storage } from "./plugins/storage.ts";
1610
import { virtual } from "./plugins/virtual.ts";
17-
import { errorHandler } from "./plugins/error-handler.ts";
1811
import { rollupNodeFileTrace } from "nf3";
19-
import { rendererTemplate } from "./plugins/renderer-template.ts";
20-
import { featureFlags } from "./plugins/feature-flags.ts";
2112
import { nitroResolveIds } from "./plugins/resolve.ts";
2213
import { sourcemapMinify } from "./plugins/sourcemap-min.ts";
2314
import { raw } from "./plugins/raw.ts";
24-
import { runtimeConfig } from "./plugins/runtime-config.ts";
15+
16+
import { virtualTemplates } from "./virtual/_all.ts";
2517

2618
export function baseBuildPlugins(nitro: Nitro, base: BaseBuildConfig) {
2719
const plugins: Plugin[] = [];
@@ -36,51 +28,12 @@ export function baseBuildPlugins(nitro: Nitro, base: BaseBuildConfig) {
3628
plugins.push(unwasm(nitro.options.wasm || {}));
3729
}
3830

39-
// Inject gloalThis.__server_main__
31+
// Inject globalThis.__server_main__
4032
plugins.push(serverMain(nitro));
4133

42-
// Nitro Plugins
43-
const nitroPlugins = [...new Set(nitro.options.plugins)];
44-
plugins.push(
45-
virtual(
46-
{
47-
"#nitro-internal-virtual/plugins": /* js */ `
48-
${nitroPlugins
49-
.map(
50-
(plugin) => `import _${hash(plugin).replace(/-/g, "")} from '${plugin}';`
51-
)
52-
.join("\n")}
53-
54-
export const plugins = [
55-
${nitroPlugins.map((plugin) => `_${hash(plugin).replace(/-/g, "")}`).join(",\n")}
56-
]
57-
`,
58-
},
59-
nitro.vfs
60-
)
61-
);
62-
63-
// Feature flags
64-
plugins.push(featureFlags(nitro));
65-
6634
// Resolve imports from virtual files and mapped subpaths
6735
plugins.push(nitroResolveIds());
6836

69-
// Server assets
70-
plugins.push(serverAssets(nitro));
71-
72-
// Public assets
73-
plugins.push(publicAssets(nitro));
74-
75-
// Storage
76-
plugins.push(storage(nitro));
77-
78-
// Database
79-
plugins.push(database(nitro));
80-
81-
// Routing
82-
plugins.push(routing(nitro));
83-
8437
// Raw Imports
8538
plugins.push(raw());
8639

@@ -89,32 +42,12 @@ export function baseBuildPlugins(nitro: Nitro, base: BaseBuildConfig) {
8942
plugins.push(routeMeta(nitro));
9043
}
9144

92-
// Runtime config
93-
plugins.push(runtimeConfig(nitro));
94-
95-
// Error handler
96-
plugins.push(errorHandler(nitro));
97-
98-
// Polyfill
99-
plugins.push(
100-
virtual(
101-
{
102-
"#nitro-internal-pollyfills":
103-
base.env.polyfill.map((p) => /* js */ `import '${p}';`).join("\n") ||
104-
/* js */ `/* No polyfills */`,
105-
},
106-
nitro.vfs,
107-
{ moduleSideEffects: true }
108-
)
45+
// Virtual templates
46+
const virtualPlugin = virtual(
47+
virtualTemplates(nitro, [...base.env.polyfill])
10948
);
110-
111-
// User virtuals
112-
plugins.push(virtual(nitro.options.virtual, nitro.vfs));
113-
114-
// Renderer template
115-
if (nitro.options.renderer?.template) {
116-
plugins.push(rendererTemplate(nitro));
117-
}
49+
nitro.vfs = virtualPlugin.api.modules;
50+
plugins.push(virtualPlugin);
11851

11952
// Replace Plugin
12053
plugins.push(
@@ -149,7 +82,7 @@ export function baseBuildPlugins(nitro: Nitro, base: BaseBuildConfig) {
14982
);
15083
}
15184

152-
// Minify
85+
// Sourcemap minify
15386
if (
15487
nitro.options.sourcemap &&
15588
!nitro.options.dev &&

src/build/plugins/database.ts

Lines changed: 0 additions & 59 deletions
This file was deleted.

src/build/plugins/feature-flags.ts

Lines changed: 0 additions & 35 deletions
This file was deleted.

src/build/plugins/runtime-config.ts

Lines changed: 0 additions & 15 deletions
This file was deleted.

src/build/plugins/server-assets.ts

Lines changed: 0 additions & 111 deletions
This file was deleted.

0 commit comments

Comments
 (0)