mirror of
https://github.com/withastro/astro.git
synced 2024-12-16 21:46:22 -05:00
Warn on missing pages directory (#1902)
* Warn on missing pages directory * skip hostname flag test * kill process at end of config test * fix hostname test * cleanup console logs
This commit is contained in:
parent
f930270aed
commit
26de205b98
5 changed files with 22 additions and 9 deletions
|
@ -36,6 +36,7 @@ function resolveArgs(flags: Arguments): CLIState {
|
|||
sitemap: typeof flags.sitemap === 'boolean' ? flags.sitemap : undefined,
|
||||
port: typeof flags.port === 'number' ? flags.port : undefined,
|
||||
config: typeof flags.config === 'string' ? flags.config : undefined,
|
||||
hostname: typeof flags.hostname === 'string' ? flags.hostname : undefined,
|
||||
};
|
||||
|
||||
if (flags.version) {
|
||||
|
|
|
@ -48,7 +48,7 @@ class AstroBuilder {
|
|||
const port = config.devOptions.port; // no need to save this (don’t rely on port in builder)
|
||||
this.logging = options.logging;
|
||||
this.origin = config.buildOptions.site ? new URL(config.buildOptions.site).origin : `http://localhost:${port}`;
|
||||
this.manifest = createRouteManifest({ config });
|
||||
this.manifest = createRouteManifest({ config }, this.logging);
|
||||
}
|
||||
|
||||
async build() {
|
||||
|
|
|
@ -76,7 +76,7 @@ export class AstroDevServer {
|
|||
this.site = config.buildOptions.site ? new URL(config.buildOptions.site) : undefined;
|
||||
this.devRoot = this.site ? this.site.pathname : '/';
|
||||
this.url = new URL(this.devRoot, this.origin);
|
||||
this.manifest = createRouteManifest({ config });
|
||||
this.manifest = createRouteManifest({ config }, this.logging);
|
||||
}
|
||||
|
||||
async start() {
|
||||
|
@ -250,7 +250,7 @@ export class AstroDevServer {
|
|||
return;
|
||||
}
|
||||
this.routeCache = {};
|
||||
this.manifest = createRouteManifest({ config: this.config });
|
||||
this.manifest = createRouteManifest({ config: this.config }, this.logging);
|
||||
});
|
||||
viteServer.watcher.on('unlink', (file) => {
|
||||
// Only rebuild routes if deleted file is a page.
|
||||
|
@ -258,7 +258,7 @@ export class AstroDevServer {
|
|||
return;
|
||||
}
|
||||
this.routeCache = {};
|
||||
this.manifest = createRouteManifest({ config: this.config });
|
||||
this.manifest = createRouteManifest({ config: this.config }, this.logging);
|
||||
});
|
||||
viteServer.watcher.on('change', () => {
|
||||
// No need to rebuild routes on file content changes.
|
||||
|
|
|
@ -83,7 +83,7 @@ interface Item {
|
|||
}
|
||||
|
||||
/** Create manifest of all static routes */
|
||||
export function createRouteManifest({ config, cwd }: { config: AstroConfig; cwd?: string }): ManifestData {
|
||||
export function createRouteManifest({ config, cwd }: { config: AstroConfig; cwd?: string }, logging: LogOptions): ManifestData {
|
||||
const components: string[] = [];
|
||||
const routes: RouteData[] = [];
|
||||
|
||||
|
@ -194,7 +194,13 @@ export function createRouteManifest({ config, cwd }: { config: AstroConfig; cwd?
|
|||
});
|
||||
}
|
||||
|
||||
walk(fileURLToPath(config.pages), [], []);
|
||||
if (fs.existsSync(config.pages)) {
|
||||
walk(fileURLToPath(config.pages), [], []);
|
||||
} else {
|
||||
const pagesDirRootRelative = config.pages.href.slice(config.projectRoot.href.length);
|
||||
|
||||
warn(logging, 'astro', `Missing pages directory: ${pagesDirRootRelative}`);
|
||||
}
|
||||
|
||||
return {
|
||||
routes,
|
||||
|
|
|
@ -21,12 +21,15 @@ describe('config', () => {
|
|||
const proc = devCLI(cwdURL, args);
|
||||
|
||||
proc.stdout.setEncoding('utf8');
|
||||
|
||||
for await (const chunk of proc.stdout) {
|
||||
if (/Local:/.test(chunk)) {
|
||||
expect(chunk).to.include('127.0.0.1');
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
proc.kill();
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -36,14 +39,17 @@ describe('config', () => {
|
|||
const cwdURL = new URL(cwd, import.meta.url);
|
||||
const configPath = new URL('./config/my-config.mjs', cwdURL).pathname;
|
||||
const args = ['--config', configPath];
|
||||
const process = devCLI(cwdURL, args);
|
||||
const proc = devCLI(cwdURL, args);
|
||||
|
||||
process.stdout.setEncoding('utf8');
|
||||
for await (const chunk of process.stdout) {
|
||||
proc.stdout.setEncoding('utf8');
|
||||
|
||||
for await (const chunk of proc.stdout) {
|
||||
if (/Server started/.test(chunk)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
proc.kill();
|
||||
});
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in a new issue