Skip to content

cormi.yml ​

cormi.yml 是应用的插件树,由 cordis 官方的 @cordisjs/plugin-loader 加载。文件是一个列表,每个条目是一个插件:

yaml
- name: '@cormijs/preset'           # 包名
  config:
    title: My App
    ssr: true
- name: '@cormijs/vite'
- name: '@cormijs/react'
- name: '@cormijs/plugin-request'
  config:
    timeout: 3000
- name: ./plugin.ts               # 应用自己的插件,TypeScript 由 tsx 加载
  config:
    generator: cormi
- name: '@cormijs/plugin-mock'
  disabled: true                  # 保留配置,但不加载
字段含义
name插件模块:包名、包的子路径(@cormijs/plugin-qiankun/master)或相对路径的本地文件
config插件的配置。加载前先经插件的 Config(Schema)校验,并填充默认值
disabled为 true 时不加载该插件

热重载 ​

dev 模式下,cormi.yml 的变化会被逐条应用,而不是重启整个应用:

  • 修改某个条目的 config:只有这个插件重载
  • 新增条目:加载对应插件
  • 删除条目或设置 disabled: true:卸载对应插件,它注册的路由、标签、打包器插件、浏览器入口都会撤回

本地插件(如 ./plugin.ts)的源码修改后也会被热替换。

表达式 ​

以 !!js 标记的值是 JavaScript 表达式,常用来读取环境变量:

yaml
- name: '@cormijs/plugin-mf'
  config:
    name: host
    remotes:
      remote: !!js "(process.env.REMOTE_ORIGIN || 'http://localhost:8002') + '/remoteEntry.js'"

表达式以字符串引号开头时,整体要再用一层引号包起来,否则 YAML 会把它当作普通字符串。

应用、打包器与 UI 框架的配置 ​

服务器、路由、渲染与 HTML 的配置写在 @cormijs/preset 上,构建的配置写在打包器 @cormijs/vite 上,@cormijs/react 没有配置。用 @cormijs/preset-react 时,这些配置写在一起,各部分读取各自的字段。

服务器 ​

配置默认值说明
hostlocalhost(或 HOST)dev 与 preview 服务器的主机
port8000(或 PORT)dev 与 preview 服务器的端口,被占用时顺延
proxy—转发请求到其他服务器,见 代理

| console | {} | dev 模式下的 控制台:{ path, title, registry, market }(registry 默认与包管理器相同,market 默认是 Cormi registry 的索引),或 false 关闭 |

命令行的 --port、--host 优先于配置。

路由与渲染 ​

配置默认值说明
pagessrc/pages约定式路由的目录
layouttrue用 src/layouts/index 包裹所有路由
routes—配置式路由;配置后不再扫描约定式路由,见 配置式路由
base/应用的 basename
historybrowserbrowser、hash 或 memory
ssrfalse在服务端渲染页面

HTML ​

配置默认值说明
title—文档标题
langen<html lang>
mountElementIdroot应用挂载的元素 id
favicons[]图标 URL;不配置时使用 public/favicon.*
metas[]<meta> 标签的属性
links[]<link> 标签的属性
styles[]样式表:URL,或 { tag, attrs, content }
headScripts[]<head> 中的脚本:URL,或 { tag, attrs, content }
scripts[]<body> 末尾的脚本
crossoriginfalse入口脚本、样式和预加载的 crossorigin,资源由 CDN 提供时使用

构建(@cormijs/vite、@cormijs/rsbuild) ​

配置默认值说明
publicPath/资源的 URL 前缀
outDirdist构建输出目录
alias{}模块别名
define{}编译时替换的常量
sourcemapfalse生成 source map
targets—目标浏览器:{ chrome: 87, safari: 14 }(umi 写法)或 esbuild 目标数组
vite / rsbuild—原始的 Vite / Rsbuild 配置,合并在默认配置之上

环境变量 ​

启动时,应用目录下的 .env 与 .env.local 会被读入 process.env(后者优先,支持 ${VAR} 展开)。NODE_ENV 在 dev 模式下为 development,其余模式为 production。

浏览器代码通过 import.meta.env 读取以 CORMI_APP_ 开头的变量,以及打包器自己的前缀:Vite 的 VITE_、Rsbuild 的 PUBLIC_。

查看解析后的配置 ​

sh
cormi config                 # 列出插件树:名称、状态、id
cormi config preset          # 打印匹配插件解析后的配置(含默认值)

以 MIT 许可发布 · 基于 Cordis 4、React 19 与 Vite 7