Configuration
配置文件
配置值存储在 JSON 文件中。Ionic CLI 维护一个全局配置文件,通常位于 ~/.ionic/config.json,以及项目配置文件,通常位于项目根目录下的 ionic.config.json。
CLI 提供命令用于从项目配置文件和全局 CLI 配置文件中设置和打印配置值。请参考 ionic config --help 或查看 ionic config get 和 ionic config set 的文档了解使用方法。
项目配置文件
每个 Ionic 项目都有一个项目配置文件,通常位于项目根目录。以下是一个带注释的 ionic.config.json 文件示例。
{
// 应用程序的人类可读名称
"name": "My App",
// 应用程序的项目类型。CLI 使用此值来确定哪些命令和命令选项可用,
// 帮助文档输出什么内容,以及用于 Web 资源构建和开发服务器的配置。
"type": "angular",
// Appflow 的应用程序 ID
"id": "abc123",
// 集成配置对象,如 Cordova 和 Capacitor
"integrations": {
"cordova": {
...
}
},
// 钩子配置——详情请参阅下面的钩子部分
"hooks": {
...
}
}
环境变量
CLI 将查找以下环境变量:
IONIC_CONFIG_DIRECTORY:全局 CLI 配置的目录。默认为~/.ionicIONIC_HTTP_PROXY:设置代理所有 CLI 请求的 URL。请参阅使用代理IONIC_TOKEN:自动与 Appflow 进行身份验证
标志参数
CLI 标志参数是全局选项,用于改变 CLI 命令的行为:
--help:不运行命令,查看其帮助页面--verbose:显示所有日志消息用于调试目的--quiet:仅显示WARN和ERROR级别的日志消息--no-interactive:关闭交互式提示和精美输出。如果检测到 CI 或非 TTY 终端,CLI 会自动进入非交互模式--confirm:开启确认提示的自动确认。注意:CLI 在执行可能有害的操作前会提示。自动确认可能导致意外结果
钩子
CLI 可以在某些事件期间运行脚本,例如构建前后。要使用 CLI 钩子,可以在 package.json 中使用以下 npm 脚本:
ionic:serve:before:在开发服务器启动前执行ionic:serve:after:在开发服务器终止后执行ionic:build:before:在 Web 资源构建开始前执行ionic:build:after:在 Web 资源构建完成后执行ionic:capacitor:run:before:在ionic capacitor run期间,执行 capacitor open 前执行ionic:capacitor:build:before:在ionic capacitor build期间,执行 capacitor open 前执行ionic:capacitor:sync:after:在ionic capacitor sync期间,同步后执行
当为任何钩子使用 shell 脚本时,钩子上下文会在以 IONIC_CLI_HOOK_CTX_ 为前缀的环境变量中定义。
以下示例展示了为 ionic:capacitor:build 钩子设置的环境变量:
IONIC_CLI_HOOK_CTX_NAME=capacitor:build:before
IONIC_CLI_HOOK_CTX_BUILD_CORDOVA_ASSETS=true
IONIC_CLI_HOOK_CTX_BUILD_ENGINE=browser
IONIC_CLI_HOOK_CTX_BUILD_PROJECT=app
IONIC_CLI_HOOK_CTX_BUILD_TYPE=angular
IONIC_CLI_HOOK_CTX_BUILD_VERBOSE=false
IONIC_CLI_HOOK_CTX_CAPACITOR_APP_ID=io.ionic.starter
IONIC_CLI_HOOK_CTX_CAPACITOR_APP_NAME=ionic-starter-app
IONIC_CLI_HOOK_CTX_CAPACITOR_VERBOSE=false
钩子也可以在 ionic.config.json 中定义。在项目中定义一个 hooks 对象,其中每个键是钩子的名称(不带 ionic: 前缀),值是指向 JavaScript 文件的路径或路径数组。
在以下示例中,文件在 ionic:build:before 钩子期间被导入并运行:
"hooks": {
"build:before": "./scripts/build-before.js"
},
JavaScript 钩子文件应导出一个单一函数,该函数在钩子执行时接收一个参数(ctx)。
该参数是传递给钩子文件的上下文,不同钩子和不同调用之间会有所不同。
./scripts/build-before.js:
module.exports = function (ctx) {
console.log(ctx);
};
多应用项目
CLI 6.2.0+ 版本可用Ionic CLI 支持多应用配置设置,这涉及在单个仓库或单体仓库中包含多个 Ionic 应用程序和共享代码。
这些文档概述了 Ionic CLI 的多应用功能,但并未深入每个框架的细节。
如果您使用 Angular,请参阅这篇文章查看示例。