Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 0 additions & 9 deletions examples/vite-ssr-preact/vite.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,4 @@ import preact from "@preact/preset-vite";

export default defineConfig({
plugins: [nitro(), preact()],
environments: {
client: {
build: {
rollupOptions: {
input: "./src/entry-client.tsx",
},
},
},
},
});
5 changes: 0 additions & 5 deletions examples/vite-ssr-react/vite.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,4 @@ import react from "@vitejs/plugin-react";

export default defineConfig({
plugins: [nitro(), react()],
environments: {
client: {
build: { rollupOptions: { input: "./src/entry-client.tsx" } },
},
},
});
8 changes: 0 additions & 8 deletions examples/vite-ssr-solid/vite.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,4 @@ import { nitro } from "nitro/vite";
export default defineConfig({
plugins: [solid({ ssr: true }), nitro()],
esbuild: { jsx: "preserve", jsxImportSource: "solid-js" },
environments: {
ssr: {
build: { rollupOptions: { input: "./src/entry-server.tsx" } },
},
client: {
build: { rollupOptions: { input: "./src/entry-client.tsx" } },
},
},
});
4 changes: 0 additions & 4 deletions examples/vite-ssr-vue-router/vite.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,6 @@ import { nitro } from "nitro/vite";

export default defineConfig((_env) => ({
plugins: [patchVueExclude(vue(), /\?assets/), devtoolsJson(), nitro()],
environments: {
client: { build: { rollupOptions: { input: "./app/entry-client.ts" } } },
ssr: { build: { rollupOptions: { input: "./app/entry-server.ts" } } },
},
}));

// Workaround https://github.com/vitejs/vite-plugin-vue/issues/677
Expand Down
60 changes: 48 additions & 12 deletions src/build/vite/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -96,17 +96,50 @@ function nitroEnv(ctx: NitroPluginContext): VitePlugin {
...createServiceEnvironments(ctx),
nitro: createNitroEnvironment(ctx),
};
environments.client = {
consumer: userConfig.environments?.client?.consumer ?? "client",
build: {
rollupOptions: {
input:
userConfig.environments?.client?.build?.rollupOptions?.input ??
useNitro(ctx).options.renderer?.template,
},
},
};
debug("[env] Environments:", Object.keys(environments).join(", "));

let clientEntry: string | undefined;
let clientEntryConfigured = !!getEntry(
userConfig.environments?.client?.build?.rolldownOptions?.input ||
userConfig.environments?.client?.build?.rollupOptions?.input
);
if (!clientEntryConfigured) {
const rendererTemplate = useNitro(ctx).options.renderer?.template;
if (rendererTemplate) {
// Use Nitro renderer template as client entry
clientEntry = rendererTemplate;
ctx.nitro!.logger.info(
`Using Nitro renderer template \`${prettyPath(rendererTemplate)}\` as vite client entry.`
);
} else {
// Auto-detect client entry
clientEntry = resolveModulePath("./entry-client", {
try: true,
extensions: DEFAULT_EXTENSIONS,
from: ["app", "src", ""].flatMap((d) =>
[ctx.nitro!.options.rootDir, ...ctx.nitro!.options.scanDirs].map(
(s) => join(s, d) + "/"
)
),
});
if (clientEntry) {
ctx.nitro!.logger.info(`Using \`${prettyPath(clientEntry)}\` as vite client entry.`);
}
}
}
if (clientEntry) {
environments.client = {
consumer: userConfig.environments?.client?.consumer ?? "client",
build: clientEntryConfigured
? undefined
: {
rollupOptions: {
input: clientEntry ? { index: clientEntry } : undefined,
},
},
};
debug("[env] Environments:", Object.keys(environments).join(", "));
}

return {
environments,
};
Expand Down Expand Up @@ -380,7 +413,10 @@ async function setupNitroContext(
ctx.nitro!.logger.info(`Using \`${prettyPath(ssrEntry)}\` as vite ssr entry.`);
}
} else {
let ssrEntry = getEntry(userConfig.environments.ssr.build?.rollupOptions?.input);
let ssrEntry = getEntry(
userConfig.environments.ssr.build?.rolldownOptions?.input ||
userConfig.environments.ssr.build?.rollupOptions?.input
);
if (typeof ssrEntry === "string") {
ssrEntry =
resolveModulePath(ssrEntry, {
Expand Down
Loading