mirror of
https://github.com/withastro/astro.git
synced 2024-12-23 21:53:55 -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,
|
sitemap: typeof flags.sitemap === 'boolean' ? flags.sitemap : undefined,
|
||||||
port: typeof flags.port === 'number' ? flags.port : undefined,
|
port: typeof flags.port === 'number' ? flags.port : undefined,
|
||||||
config: typeof flags.config === 'string' ? flags.config : undefined,
|
config: typeof flags.config === 'string' ? flags.config : undefined,
|
||||||
|
hostname: typeof flags.hostname === 'string' ? flags.hostname : undefined,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (flags.version) {
|
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)
|
const port = config.devOptions.port; // no need to save this (don’t rely on port in builder)
|
||||||
this.logging = options.logging;
|
this.logging = options.logging;
|
||||||
this.origin = config.buildOptions.site ? new URL(config.buildOptions.site).origin : `http://localhost:${port}`;
|
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() {
|
async build() {
|
||||||
|
|
|
@ -76,7 +76,7 @@ export class AstroDevServer {
|
||||||
this.site = config.buildOptions.site ? new URL(config.buildOptions.site) : undefined;
|
this.site = config.buildOptions.site ? new URL(config.buildOptions.site) : undefined;
|
||||||
this.devRoot = this.site ? this.site.pathname : '/';
|
this.devRoot = this.site ? this.site.pathname : '/';
|
||||||
this.url = new URL(this.devRoot, this.origin);
|
this.url = new URL(this.devRoot, this.origin);
|
||||||
this.manifest = createRouteManifest({ config });
|
this.manifest = createRouteManifest({ config }, this.logging);
|
||||||
}
|
}
|
||||||
|
|
||||||
async start() {
|
async start() {
|
||||||
|
@ -250,7 +250,7 @@ export class AstroDevServer {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.routeCache = {};
|
this.routeCache = {};
|
||||||
this.manifest = createRouteManifest({ config: this.config });
|
this.manifest = createRouteManifest({ config: this.config }, this.logging);
|
||||||
});
|
});
|
||||||
viteServer.watcher.on('unlink', (file) => {
|
viteServer.watcher.on('unlink', (file) => {
|
||||||
// Only rebuild routes if deleted file is a page.
|
// Only rebuild routes if deleted file is a page.
|
||||||
|
@ -258,7 +258,7 @@ export class AstroDevServer {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.routeCache = {};
|
this.routeCache = {};
|
||||||
this.manifest = createRouteManifest({ config: this.config });
|
this.manifest = createRouteManifest({ config: this.config }, this.logging);
|
||||||
});
|
});
|
||||||
viteServer.watcher.on('change', () => {
|
viteServer.watcher.on('change', () => {
|
||||||
// No need to rebuild routes on file content changes.
|
// No need to rebuild routes on file content changes.
|
||||||
|
|
|
@ -83,7 +83,7 @@ interface Item {
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Create manifest of all static routes */
|
/** 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 components: string[] = [];
|
||||||
const routes: RouteData[] = [];
|
const routes: RouteData[] = [];
|
||||||
|
|
||||||
|
@ -194,7 +194,13 @@ export function createRouteManifest({ config, cwd }: { config: AstroConfig; cwd?
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (fs.existsSync(config.pages)) {
|
||||||
walk(fileURLToPath(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 {
|
return {
|
||||||
routes,
|
routes,
|
||||||
|
|
|
@ -21,12 +21,15 @@ describe('config', () => {
|
||||||
const proc = devCLI(cwdURL, args);
|
const proc = devCLI(cwdURL, args);
|
||||||
|
|
||||||
proc.stdout.setEncoding('utf8');
|
proc.stdout.setEncoding('utf8');
|
||||||
|
|
||||||
for await (const chunk of proc.stdout) {
|
for await (const chunk of proc.stdout) {
|
||||||
if (/Local:/.test(chunk)) {
|
if (/Local:/.test(chunk)) {
|
||||||
expect(chunk).to.include('127.0.0.1');
|
expect(chunk).to.include('127.0.0.1');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
proc.kill();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -36,14 +39,17 @@ describe('config', () => {
|
||||||
const cwdURL = new URL(cwd, import.meta.url);
|
const cwdURL = new URL(cwd, import.meta.url);
|
||||||
const configPath = new URL('./config/my-config.mjs', cwdURL).pathname;
|
const configPath = new URL('./config/my-config.mjs', cwdURL).pathname;
|
||||||
const args = ['--config', configPath];
|
const args = ['--config', configPath];
|
||||||
const process = devCLI(cwdURL, args);
|
const proc = devCLI(cwdURL, args);
|
||||||
|
|
||||||
process.stdout.setEncoding('utf8');
|
proc.stdout.setEncoding('utf8');
|
||||||
for await (const chunk of process.stdout) {
|
|
||||||
|
for await (const chunk of proc.stdout) {
|
||||||
if (/Server started/.test(chunk)) {
|
if (/Server started/.test(chunk)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
proc.kill();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue