Skip to content

插件选项 ​

UniManifest(options) 接收一个可选的配置对象,所有字段都是可选的。

ts
UniManifest({
  minify: true,
  dotenv: true,
  outDir: 'dist/manifest',
})

基础选项 ​

选项类型默认值起始说明
minifybooleanfalsev0.1.3压缩生成的 manifest.json
insertFinalNewlinebooleanfalsev0.2.9在文件末尾插入一个换行
indentnumber | string2v0.5.2缩进,接受空格数或字符串(如 '\t')。minify 为 true 时忽略
eol'\n' | '\r\n''\n'v0.5.2换行符

路径选项 ​

选项类型默认值起始说明
cwdstringprocess.env.VITE_ROOT_DIR,没有时 process.cwd()v0.2.12从这里查找 manifest.config.*
outDirstringUNI_INPUT_DIR,没有时 cwd/srcv0.5.1manifest.json 的输出目录。相对路径以 cwd 为基准,目录不存在会自动创建

cwd 和 outDir 一起解决 monorepo 的路径问题:

ts
UniManifest({
  cwd: 'packages/app',
  outDir: 'src',
})

调试 ​

ts
UniManifest({
  debug: true, // 打开全部类别
})
值说明
false默认,不输出日志
true打开 options、config、writer 三个类别
'options' | 'config' | 'writer'只打开一个类别

等效于设置 DEBUG=vite-plugin-uni-manifest:* 环境变量。插件打开日志后不会改动你自己的 process.env.DEBUG 值。

dotenv ​

dotenv: true 让 manifest.config.ts 能读到 .env 系列文件。

ts
UniManifest({ dotenv: true })

读取的文件和 Vite 一致:

文件说明
.env所有模式共用
.env.local本地覆盖,通常不提交
.env.{mode}当前 mode 专用
.env.{mode}.local当前 mode 的本地覆盖

后读的覆盖先读的。解析交给 Vite 的 loadEnv,用空前缀,变量名不受 VITE_ 限制。process.env 里已有的值优先于文件。

mode 是 Vite 的 mode,vite 命令下是 development,build 下是 production,--mode 可以改。文件只在启动时读一次,改完 .env 要重启。

replaceArrays ​

replaceArrays: true 让数组字段整体替换默认配置。

ts
UniManifest({ replaceArrays: true })

默认关闭时,c12 用 defu 合并,数组会拼接:默认配置里的数组在前,你写的接在后面。打开后,你写的数组直接替换默认配置里的同名数组。

对其它类型没有影响:对象照常深合并,标量以你写的为准。

选项从哪来 ​

选项先经过一次解析补齐默认值,再折成 writer 需要的 OutputSpec(目录、缩进、换行符、末尾换行)。minify 在这一步变成 indent: 0,所以 writer 不需要知道 minify。类型定义见编程接口。