0
Fork 0
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:
Jonathan Neal 2021-11-22 15:11:13 -05:00 committed by GitHub
parent f930270aed
commit 26de205b98
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 22 additions and 9 deletions

View file

@ -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) {

View file

@ -48,7 +48,7 @@ class AstroBuilder {
const port = config.devOptions.port; // no need to save this (dont rely on port in builder) const port = config.devOptions.port; // no need to save this (dont 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() {

View file

@ -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.

View file

@ -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,

View file

@ -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();
}); });
}); });