Skip to content

Commit

Permalink
fix(vite-plugin-nitro): correctly merge Nitro config customizations (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
brandonroberts committed May 13, 2024
1 parent 2276a93 commit a604ec6
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 24 deletions.
4 changes: 2 additions & 2 deletions packages/nx-plugin/src/utils/versions/dependencies.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ export const getAnalogDependencies = (

const getDependencies = (escapedAngularVersion: string) => {
// fail out for versions <15.2.0
if (lt(escapedAngularVersion, '16.0.0')) {
throw new Error(stripIndents`Angular v16.0.0 or newer is required.`);
if (lt(escapedAngularVersion, '15.0.0')) {
throw new Error(stripIndents`Angular v15.0.0 or newer is required.`);
}

// install 16.x deps for versions <17.0.0
Expand Down
2 changes: 1 addition & 1 deletion packages/nx-plugin/src/utils/versions/dev-dependencies.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export const getAnalogDevDependencies = (

const getDevDependencies = (escapedAngularVersion: string) => {
// fail out for versions <15.2.0
if (lt(escapedAngularVersion, '16.0.0')) {
if (lt(escapedAngularVersion, '15.0.0')) {
throw new Error(stripIndents`Angular v16.0.0 or newer is required.`);
}

Expand Down
2 changes: 1 addition & 1 deletion packages/nx-plugin/src/utils/versions/ng_16_X/versions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ export const V16_X_NX_ANGULAR = '~18.0.0';
export const V16_X_NX_VITE = '~18.0.0';
export const V16_X_JSDOM = '^22.0.0';
export const V16_X_VITE_TSCONFIG_PATHS = '^4.2.0';
export const V16_X_VITEST = '^1.31.0';
export const V16_X_VITEST = '^1.3.1';
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@ export const mockViteDevServer = {

export const mockNitroConfig: NitroConfig = {
buildDir: resolve('./dist/.nitro'),
preset: undefined,
handlers: [],
logLevel: 0,
output: {
dir: resolve('dist/analog'),
publicDir: resolve('dist/analog/public'),
},
rootDir: '.',
runtimeConfig: {},
scanDirs: ['src/server'],
srcDir: 'src/server',
prerender: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,7 @@ describe('nitro', () => {
...mockNitroConfig,
prerender: {
routes: ['/blog', '/about', '/blog/first', '/blog/02-second'],
crawlLinks: undefined,
},
alias: expect.anything(),
publicAssets: expect.anything(),
Expand Down
26 changes: 7 additions & 19 deletions packages/vite-plugin-nitro/src/lib/vite-plugin-nitro.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { NitroConfig, build, createDevServer, createNitro } from 'nitropack';
import { App, toNodeListener } from 'h3';
import type { Plugin, UserConfig, ViteDevServer } from 'vite';
import { normalizePath } from 'vite';
import { mergeConfig, normalizePath } from 'vite';
import { dirname, join, relative, resolve } from 'node:path';
import { platform } from 'node:os';
import { fileURLToPath } from 'node:url';
Expand Down Expand Up @@ -97,15 +97,13 @@ export function nitro(options?: Options, nitroOptions?: NitroConfig): Plugin[] {
publicDir: normalizePath(
resolve(workspaceRoot, 'dist', rootDir, 'analog/public')
),
...nitroOptions?.output,
},
buildDir: normalizePath(
resolve(workspaceRoot, 'dist', rootDir, '.nitro')
),
typescript: {
generateTsConfig: false,
},
runtimeConfig: { ...nitroOptions?.runtimeConfig },
rollupConfig: {
onwarn(warning) {
if (
Expand Down Expand Up @@ -150,7 +148,6 @@ export function nitro(options?: Options, nitroOptions?: NitroConfig): Plugin[] {
nitroConfig.alias = {
'#analog/ssr': ssrEntry,
'#analog/index': indexEntry,
...nitroOptions?.alias,
};

if (isBuild) {
Expand Down Expand Up @@ -250,18 +247,9 @@ export function nitro(options?: Options, nitroOptions?: NitroConfig): Plugin[] {
nitroConfig = {
...nitroConfig,
externals: {
...nitroOptions?.externals,
external: [
'rxjs',
'node-fetch-native/dist/polyfill',
...(nitroOptions?.externals?.external || []),
],
external: ['rxjs', 'node-fetch-native/dist/polyfill'],
},
moduleSideEffects: [
'zone.js/node',
'zone.js/fesm2015/zone-node',
...(nitroOptions?.moduleSideEffects || []),
],
moduleSideEffects: ['zone.js/node', 'zone.js/fesm2015/zone-node'],
handlers: [
{
handler: apiMiddlewareHandler,
Expand All @@ -273,10 +261,10 @@ export function nitro(options?: Options, nitroOptions?: NitroConfig): Plugin[] {
}
}

nitroConfig = {
...nitroConfig,
...nitroOptions,
};
nitroConfig = mergeConfig(
nitroConfig,
nitroOptions as Record<string, any>
);
},
async configureServer(viteServer: ViteDevServer) {
if (isServe && !isTest) {
Expand Down

0 comments on commit a604ec6

Please sign in to comment.