CLI 命令
你可以使用 Astro 提供的命令行界面 (CLI) 从终端窗口开发、构建和预览你的项目。
astro
命令
段落标题 astro 命令通过使用你喜欢的包管理器运行此页面上记录的命令之一来使用 CLI,可选择后跟任何标志。标志可以自定义命令的行为。
你最常使用的命令之一是 astro dev
。这个命令启动开发服务器,并在浏览器中为你提供一个实时更新的网站预览,以便你在工作时查看。
你可以在终端中输入 astro --help
来显示所有可用命令的列表:
下面的消息将在你的终端中显示:
你需要在标志前添加 --
才能让 npm
把这些标志传递给 astro
命令。
package.json
脚本
段落标题 package.json 脚本你也可以在 package.json
中使用脚本来使用这些命令的简短版本。使用脚本允许你使用来自其他项目的相同命令,例如 npm run build
。
当你使用 create astro
向导 创建项目时,以下脚本是为你自动添加的,用于最常用的 astro
命令(astro dev
、astro build
和 astro preview
)。
当你按照手动安装 Astro 的说明进行操作时,你会被告知自己添加这些脚本。你还可以手动为任何你经常使用的命令添加更多脚本到这个列表中。
你经常会使用这些 astro
命令,或者运行它们的脚本,而不带任何标志。当你想要自定义命令的行为时,可以向命令添加标志。例如,你可能希望在不同的端口上启动开发服务器,或者使用详细日志构建站点以进行调试。
astro dev
段落标题 astro dev运行 Astro 的开发服务器。这是一个不打包资源的本地 HTTP 服务器。当你在编辑器中保存更改时,它使用热模块替换 (HMR) 来更新你的浏览器。
标志
使用这些标志来自定义 Astro 开发服务器的行为。对于与其他 Astro 命令共享的标志,请参阅下面的通用标志。
--port <number>
段落标题 --port <number>指定运行在哪个端口。默认为 4321
。
--host [可选主机地址]
段落标题 --host [可选主机地址]设置开发服务器应该监听哪些网络 IP 地址(即非本地主机 IP)。这对于在开发期间在本地设备(例如手机)上测试你的项目很有用。
--host
——监听所有地址,包括 LAN 和公开地址--host [自定义地址]
——暴露在[自定义地址]
的网络 IP 地址上。
不要使用 --host
标志在生产环境中暴露开发服务器。开发服务器专为本地使用而设计,仅用于开发你的站点。
astro build
段落标题 astro build构建你的网站以进行部署。默认情况下,这将生成静态文件并将它们放在 dist/
目录中。如果SSR 被启用,这将生成必要的服务器文件为你的网站提供服务。
可以与下面记录的通用标志结合使用。
astro preview
段落标题 astro preview启动本地静态文件服务器,为静态的 dist/
目录提供服务。
此命令对于在部署之前在本地预览你的构建很有用。它不是为在生产环境中运行而设计的。关于生产托管的帮助,请查看我们的部署 Astro 站点指南。
从 Astro 1.5.0 开始,如果你使用支持它的适配器,astro preview
也适用于 SSR 构建。目前,只有 Node 适配器支持 astro preview
。
可以与下面文档的通用标志结合使用。
astro check
段落标题 astro check对项目进行检测(比如对 .astro
文件进行类型检查),并向控制台输出错误信息。如果发现任何错误,该进程将以 1 代码退出。
该命令旨在用于 CI 工作流程。
标志
使用这些标志来自定义命令的行为。
--watch
段落标题 --watch该命令将监听你项目中的任何更改,并报告任何错误。
📚 阅读更多关于 在 Astro 中类型检查 的信息。
astro sync
段落标题 astro sync
添加于:
astro@2.0.0
运行 astro dev
,astro build
或者astro check
也会运行sync
命令。
为所有 Astro 模块生成 TypeScript 类型。这会为类型推断设置一个src/env.d.ts
文件,并为 内容集合 API 定义 astro:content
模块。
astro add
段落标题 astro add将集成添加到你的配置中。在集成指南中阅读更多信息。
astro docs
段落标题 astro docs直接从终端启动 Astro Docs 网站。
astro info
段落标题 astro info显示当前 Astro 环境的有用信息,以便在提交 issue 时提供信息。
输出示例:
astro preferences
段落标题 astro preferences使用 astro preferences
命令管理用户偏好。用户偏好是特定于单个 Astro 用户的,不像 astro.config.mjs
文件,它会改变所有项目的所有人的行为。
默认情况下,用户偏好是针对当前项目的,存储在本地的 .astro/settings.json
文件中。
使用 --global
标志,用户偏好也可以应用于当前机器上的每个 Astro 项目。全局用户偏好存储在特定于操作系统的位置。
举个例子,要在特定的 Astro 项目中禁用 devToolbar:
要在当前机器上的所有 Astro 项目中禁用 devToolbar:
稍后可以使用以下命令启用 devToolbar:
reset
命令将偏好重置为其默认值:
list
命令打印所有可配置用户偏好的当前设置。它还支持机器可读的 --json
输出。
astro telemetry
段落标题 astro telemetry为当前 CLI 用户设置遥测配置。遥测是匿名数据,可让 Astro 团队深入了解最常使用哪些 Astro 功能。有关更多信息,请参阅 Astro 的遥测页面。
可以通过这个 CLI 命令禁用遥测:
后面也可以随时通过以下方式重新启用遥测:
使用 clear
命令重置遥测数据:
将 astro telemetry disable
命令添加到你的 CI 脚本或设置 ASTRO_TELEMETRY_DISABLED
环境变量。
通用标志
段落标题 通用标志--root <path>
段落标题 --root <path>指定项目根目录的路径。如果不指定,则假定当前工作目录为根目录。
根目录是用来寻找 Astro 配置文件的。
--config <path>
段落标题 --config <path>指定配置文件的路径。默认为 astro.config.mjs
。如果使用了不同的配置文件名称或放在其他文件夹中,请使用:
--outDir <path>
段落标题 --outDir <path>astro@3.3.0
为你的项目配置 outDir
。传递此标志将覆盖 astro.config.mjs
文件中的 outDir
值(如果存在)。
--site <url>
段落标题 --site <url>为你的项目配置 site
。传递此标志将覆盖 astro.config.mjs
文件中的 site
值(如果存在)。
--base <pathname>
段落标题 --base <pathname>astro@1.4.1
为你的项目配置 base
。传递此标志将覆盖 astro.config.mjs
文件中的 base
值(如果存在)。
--verbose
段落标题 --verbose启用完整日志,调试时有用。
--silent
段落标题 --silent启用静默日志,当你不想看到 Astro 日志时有用。
全局标志
段落标题 全局标志使用这些标志获取有关 astro
CLI 的信息。
--version
段落标题 --version打印 Astro 版本号并退出。
--open
段落标题 --open在服务器启动时自动在浏览器中打开应用程序。
--help
段落标题 --help打印帮助信息并退出。
高级 API(实验性)
段落标题 高级 API(实验性)如果你需要在运行 Astro 时获得更多的控制权,"astro"
包也导出了 API 来以编程方式运行 CLI 命令。
这些 API 是实验性的,它们的 API 签名可能会改变。任何更新都将在 Astro 更新日志 中提到,下面的信息将始终显示当前的、最新的信息。
AstroInlineConfig
段落标题 AstroInlineConfigAstroInlineConfig
类型由下面所有的命令 API 使用。它继承了用户的 Astro 配置 类型:
configFile
段落标题 configFile类型: string | false
默认值: undefined
一个自定义的 Astro 配置文件路径。
如果这个值是 undefined 的(默认)或未设置的,Astro 将在 root
目录下搜索 astro.config.(js,mjs,ts)
文件,并在找到时加载配置文件。
如果设置了相对路径,它将基于当前工作目录解析。
设置为 false
以禁用加载任何配置文件。
当与加载的用户配置合并时,传递给此对象的内联配置将具有最高优先级。
mode
段落标题 mode类型: "development" | "production"
默认值: 当运行 astro dev
时为 "development"
, 当运行 astro build
时为 "production"
构建你的网站以生成“development”或“production”代码时使用的模式。
logLevel
段落标题 logLevel类型: "debug" | "info" | "warn" | "error" | "silent"
默认值: "info"
Astro 记录的消息的日志级别。
"debug"
: 记录所有内容,包括干扰调试诊断。"info"
: 记录信息类型的消息,警告,和错误等日志。"warn"
: 记录警告和错误日志。"error"
: 只记录错误日志。"silent"
: 不开启日志。
dev()
段落标题 dev()类型: (inlineConfig: AstroInlineConfig) => AstroDevServer
和 astro dev
类似,使用它来运行 Astro 的开发服务器。
build()
段落标题 build()类型: (inlineConfig: AstroInlineConfig) => void
和 astro build
类似,使用它来构建你的网站以进行部署。
preview()
段落标题 preview()类型: (inlineConfig: AstroInlineConfig) => AstroPreviewServer
和 astro preview
类似,它启动一个本地服务器为静态的 dist/
目录提供预览服务。
sync()
段落标题 sync()类型: (inlineConfig: AstroInlineConfig) => number
和 astro sync
类似,它为所有 Astro 模块生成 TypeScript 类型。