CLI 命令
你可以使用 Astro 提供的命令行界面 (CLI) 从终端窗口开发、构建和预览你的项目。
astro
命令
段落标题 astro 命令通过使用你喜欢的包管理器运行此页面上记录的命令之一来使用 CLI,可选择后跟任何标志。标志可以自定义命令的行为。
你最常使用的命令之一是 astro dev
。这个命令启动开发服务器,并在浏览器中为你提供一个实时更新的网站预览,以便你在工作时查看。
你可以在终端中输入 astro --help
来显示所有可用命令的列表:
下面的消息将在你的终端中显示:
你可以在任何命令后添加 --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 build
段落标题 astro build构建你的网站以进行部署。默认情况下,这将生成静态文件并将它们放在 dist/
目录中。如果SSR 被启用,这将生成必要的服务器文件为你的网站提供服务。
可以与下面记录的通用标志结合使用。
astro preview
段落标题 astro preview启动一个本地服务器,用于提供由运行 astro build
创建的静态目录(默认为 dist/
)的内容。
该命令允许你在部署之前构建本地预览你的网站,以便在构建输出中捕获任何错误。它不是为在生产环境中运行而设计的。有关生产托管的帮助,请查看我们的部署 Astro 网站指南。
从 Astro 1.5.0 开始,如果你使用支持它的适配器,astro preview
也适用于 SSR 构建。目前,只有 Node 适配器支持 astro preview
。
可以与下面文档的通用标志结合使用。
astro check
段落标题 astro check对项目进行检测(比如对 .astro
文件进行类型检查),并向控制台输出错误信息。如果发现任何错误,该进程将以 1 代码退出。
该命令旨在用于 CI 工作流程。
标志
使用这些标志来自定义命令的行为。
--watch
段落标题 --watch该命令将监听你项目中的任何更改,并报告任何错误。
--root <path-to-dir>
段落标题 --root <path-to-dir>指定一个不同的根目录进行检查。默认使用当前工作目录。
--tsconfig <path-to-file>
段落标题 --tsconfig <path-to-file>指定手动使用的 tsconfig.json
文件。如果未提供,Astro 将尝试找到配置,或自动推断项目的配置。
--minimumFailingSeverity <error|warning|hint>
段落标题 --minimumFailingSeverity <error|warning|hint>指定退出并返回错误代码所需的最低严重性级别。默认为 error
。
例如,运行 astro check --minimumFailingSeverity warning
会在检测到任何警告时使命令退出并报错。
--minimumSeverity <error|warning|hint>
段落标题 --minimumSeverity <error|warning|hint>指定要输出的最低严重性级别。默认为 hint
。
例如,运行 astro check --minimumSeverity warning
将显示错误和警告,但不显示提示。
--preserveWatchOutput
段落标题 --preserveWatchOutput指定在监听模式下,不清除检查之间的输出。
--noSync
段落标题 --noSync指定在检查项目之前,不运行 astro sync
。
astro sync
段落标题 astro sync
添加于:
astro@2.0.0
运行 astro dev
,astro build
或者astro check
也会运行sync
命令。
为所有 Astro 模块生成 TypeScript 类型。这会为类型推断设置一个src/env.d.ts
文件,并为依赖于生成类型的特性定义模块:
astro:content
模块用于 内容集合 API。astro:db
模块用于 Astro DB。astro:env
模块用于 实验性的 Astro Env。astro:actions
模块用于 Astro Actions。
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 项目。全局用户偏好存储在特定于操作系统的位置。
可配置的偏好设置
devToolbar
— 在浏览器中启用或禁用开发工具栏。(默认值:true
)checkUpdates
— 启用或禁用 Astro CLI 的自动更新检查。(默认值:true
)
list
命令打印所有可配置用户偏好的当前设置。它还支持机器可读的 --json
输出格式。
终端输出示例:
Preference | Value |
---|---|
devToolbar.enabled | true |
checkUpdates.enabled | true |
你可以通过 enable
、disable
或 reset
命令来启用、禁用或重置偏好设置至默认值。
举个例子,要在特定的 Astro 项目中禁用 devToolbar:
要在当前机器上的所有 Astro 项目中禁用 devToolbar:
稍后可以使用以下命令启用 devToolbar:
reset
命令将偏好重置为其默认值:
astro telemetry
段落标题 astro telemetry为当前 CLI 用户设置遥测配置。遥测是匿名数据,可让 Astro 团队深入了解最常使用哪些 Astro 功能。有关更多信息,请参阅 Astro 的遥测页面。
可以通过这个 CLI 命令禁用遥测:
后面也可以随时通过以下方式重新启用遥测:
使用 reset
命令重置遥测数据:
将 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
值(如果存在)。
--port <number>
段落标题 --port <number>指定运行开发服务器和预览服务器的端口。默认为 4321
。
--host [optional host address]
段落标题 --host [optional host address]设置开发服务器和预览服务器应监听的网络 IP 地址(即非 localhost IP)。这在开发过程中对于在本地设备(如手机)上测试你的项目非常有用。
--host
— 在所有地址上监听,包括 LAN 和公共地址--host <custom-address>
— 在<custom-address>
的网络 IP 地址上公开
不要在生产环境中使用 --host
标志来公开开发服务器和预览服务器。这些服务器仅设计用于在开发你的网站时本地使用。
--verbose
段落标题 --verbose启用完整日志,调试时有用。
--silent
段落标题 --silent启用静默日志,当你不想看到 Astro 日志时有用。
--open
段落标题 --open在服务器启动时自动在浏览器中打开应用程序。可以传递完整的 URL 字符串 (例如 --open http://example.com
) 或路径名 (例如 --open /about
) 来指定要打开的 URL。
全局标志
段落标题 全局标志使用这些标志获取有关 astro
CLI 的信息。
--version
段落标题 --version打印 Astro 版本号并退出。
--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,mts)
文件,并在找到时加载配置文件。
如果设置了相对路径,它将基于 root
选项。
设置为 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) => Promise<DevServer>
和 astro dev
类似,使用它来运行 Astro 的开发服务器。
DevServer
段落标题 DevServeraddress
段落标题 address开发服务器正在监听的地址。
该属性包含 Node 的 net.Server#address()
方法 返回的值。
handle()
段落标题 handle()Node HTTP 原始请求的句柄。你可以使用 http.IncomingMessage
和 http.ServerResponse
来调用 handle()
,而不用通过网络发送请求。
watcher
段落标题 watcherVite 开发服务器 公开的 Chokidar 文件监听器。
stop()
段落标题 stop()停止开发服务器。这将关闭所有空闲连接并停止侦听新连接。
返回一个 Promise
,一旦所有挂起的请求都执行完毕且所有空闲连接都已关闭,该 Promise
就会解析。
build()
段落标题 build()类型: (inlineConfig: AstroInlineConfig) => Promise<void>
和 astro build
类似,使用它来构建你的网站以进行部署。
preview()
段落标题 preview()类型: (inlineConfig: AstroInlineConfig) => Promise<PreviewServer>
和 astro preview
类似,它启动一个本地服务器来为你的构建输出提供服务。
如果配置中未设置适配器,预览服务器将仅提供构建的静态文件。 如果配置中设置了适配器,则预览服务器由该适配器提供。适配器不需要提供预览服务器,因此根据你选择的适配器,此功能可能不可用。
PreviewServer
段落标题 PreviewServerhost
段落标题 host服务器监听连接的主机。
适配器可以不设置此字段。host
的值是特定于实现的。
port
段落标题 port服务器监听连接的端口。
stop()
段落标题 stop()要求预览服务器关闭、停止接受请求并删除空闲连接。
当关闭请求发出后,返回的 Promise
就会解析。这并不意味着服务器已经关闭。如果需要确保服务器已完全关闭,请使用 close()
方法。
closed()
段落标题 closed()返回一个 Promise
,一旦服务器关闭,该 Promise 就会解析;如果服务器发生错误,该 Promise 将被拒绝。
sync()
段落标题 sync()类型: (inlineConfig: AstroInlineConfig) => Promise<void>
和 astro sync
类似,它为所有 Astro 模块生成 TypeScript 类型。