From ddf2f8390e8dcc64b44636524bdcddae977779f4 Mon Sep 17 00:00:00 2001 From: Nate Moore Date: Wed, 26 Oct 2022 10:13:43 -0500 Subject: [PATCH] Add support for `--base` CLI argument (#4917) * feat(cli): add support for `--base` CLI argument * chore: update CLI --help * Update wise-swans-live.md * Update wise-swans-live.md Co-authored-by: Nate Moore --- .changeset/wise-swans-live.md | 9 +++++++++ examples/minimal/src/pages/index.astro | 3 ++- packages/astro/src/@types/astro.ts | 1 + packages/astro/src/cli/index.ts | 2 ++ packages/astro/src/core/config/config.ts | 2 ++ 5 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 .changeset/wise-swans-live.md diff --git a/.changeset/wise-swans-live.md b/.changeset/wise-swans-live.md new file mode 100644 index 000000000..906199d37 --- /dev/null +++ b/.changeset/wise-swans-live.md @@ -0,0 +1,9 @@ +--- +'astro': minor +--- + +Add support for `--base` CLI argument, which will override the [`base`](https://docs.astro.build/en/reference/configuration-reference/#base) set in your `astro.config.mjs` file. + +``` +astro --site https://astro.build --base /docs +``` diff --git a/examples/minimal/src/pages/index.astro b/examples/minimal/src/pages/index.astro index 7264ff502..3fba466cb 100644 --- a/examples/minimal/src/pages/index.astro +++ b/examples/minimal/src/pages/index.astro @@ -10,6 +10,7 @@ Astro -

Astro

+

SITE: {Astro.site}

+

BASE_URL: {import.meta.env.BASE_URL}

diff --git a/packages/astro/src/@types/astro.ts b/packages/astro/src/@types/astro.ts index 12452e9bf..6d41f9d49 100644 --- a/packages/astro/src/@types/astro.ts +++ b/packages/astro/src/@types/astro.ts @@ -77,6 +77,7 @@ export interface AstroComponentMetadata { export interface CLIFlags { root?: string; site?: string; + base?: string; host?: string | boolean; port?: number; config?: string; diff --git a/packages/astro/src/cli/index.ts b/packages/astro/src/cli/index.ts index 738427dbb..da05d989e 100644 --- a/packages/astro/src/cli/index.ts +++ b/packages/astro/src/cli/index.ts @@ -61,6 +61,8 @@ function printAstroHelp() { 'Global Flags': [ ['--config ', 'Specify your config file.'], ['--root ', 'Specify your project root folder.'], + ['--site ', 'Specify your project site.'], + ['--base ', 'Specify your project base.'], ['--verbose', 'Enable verbose logging.'], ['--silent', 'Disable all logging.'], ['--version', 'Show the version number and exit.'], diff --git a/packages/astro/src/core/config/config.ts b/packages/astro/src/core/config/config.ts index 840971e56..4164dfda7 100644 --- a/packages/astro/src/core/config/config.ts +++ b/packages/astro/src/core/config/config.ts @@ -97,6 +97,7 @@ export function resolveFlags(flags: Partial): CLIFlags { return { root: typeof flags.root === 'string' ? flags.root : undefined, site: typeof flags.site === 'string' ? flags.site : undefined, + base: typeof flags.base === 'string' ? flags.base : undefined, port: typeof flags.port === 'number' ? flags.port : undefined, config: typeof flags.config === 'string' ? flags.config : undefined, host: @@ -114,6 +115,7 @@ function mergeCLIFlags(astroConfig: AstroUserConfig, flags: CLIFlags, cmd: strin astroConfig.server = astroConfig.server || {}; astroConfig.markdown = astroConfig.markdown || {}; if (typeof flags.site === 'string') astroConfig.site = flags.site; + if (typeof flags.base === 'string') astroConfig.base = flags.base; if (typeof flags.drafts === 'boolean') astroConfig.markdown.drafts = flags.drafts; if (typeof flags.port === 'number') { // @ts-expect-error astroConfig.server may be a function, but TS doesn't like attaching properties to a function.