Skip to content

Commit 6732df0

Browse files
authored
fix: watch loop caused by the custom output path (#140)
close #139
1 parent 6153263 commit 6732df0

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

src/build.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ type RoutesInfo = Record<string, {
1515
params: string[];
1616
}>
1717

18-
export const DEFAULT_OUTPUT_DIR_PATH = './.react-router/types'
18+
export const DEFAULT_OUTPUT_DIR_PATH = './.react-router/types';
19+
export const TYPE_FILE_NAME = 'safe-routes.d.ts';
1920

2021
async function buildHelpers(config: RequiredReactRouterConfig): Promise<[RoutesInfo, string[]]> {
2122
const routesInfo: RoutesInfo = {};
@@ -103,7 +104,7 @@ function generate(root: string, config: RequiredReactRouterConfig, routesInfo: R
103104
if (!fs.existsSync(outputPath)) {
104105
mkdirp.sync(outputPath);
105106
}
106-
fs.writeFileSync(path.join(outputPath, 'safe-routes.d.ts'), tsCode);
107+
fs.writeFileSync(path.join(outputPath, TYPE_FILE_NAME), tsCode);
107108
}
108109

109110
function parse(routes: RouteManifestEntry[]) {

src/vite.ts

+5-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import replace from '@rollup/plugin-replace';
22
import * as Vite from 'vite';
33
import { join } from 'node:path';
44
import { placeholder } from './basename.js';
5-
import { DEFAULT_OUTPUT_DIR_PATH, build } from './build.js';
5+
import { DEFAULT_OUTPUT_DIR_PATH, TYPE_FILE_NAME, build } from './build.js';
66
import { ReactRouterPluginContext } from './types.js';
77

88
export interface PluginOptions {
@@ -67,6 +67,10 @@ export function safeRoutes(pluginConfig: PluginOptions = {}): Vite.Plugin {
6767
return;
6868
}
6969

70+
if (pluginConfig.outDir && id === join(rootDirectory, pluginConfig.outDir, TYPE_FILE_NAME)) {
71+
return;
72+
}
73+
7074
await reloadCtx();
7175
generateTypeFile();
7276
},

0 commit comments

Comments
 (0)