F_SYSTEM_* 表示命令定义或应用注册无效。这类错误面向开发者:func 会立即停止,不会把它们传递给命令局部或全局错误处理器。
F_SCAFFOLD_* 表示 funcgo、create-func 与相关生态工具失败。对应页面会说明需要修正的项目配置或环境输入,以及重新执行命令前的最小解决步骤。
当 funcgo 在开发或构建检查中识别到系统错误时,它会保留原始错误输出,并在最底部添加对应页面的链接。你可以根据错误码查看约束说明、最小复现和修复方式。
框架错误
由 func 框架自身抛出的错误
-
F_SYSTEM_AMBIGUOUS_OPTION_SCOPE选项作用域不明确
一个共享 Command path 同时属于多个带 Module options 的 feature,无法确定应使用哪一组规则。
-
F_SYSTEM_CANNOT_INFER_VALUE_TYPE无法推断值类型
值属性没有提供受支持的 TypeScript 装饰器元数据。
-
F_SYSTEM_CIRCULAR_MODULE_IMPORT模块循环导入
Module.imports 中的依赖路径回到了已经正在编译的 Module。
-
F_SYSTEM_CIRCULAR_PROVIDER_DEPENDENCYProvider 循环依赖
当前调用解析 Provider 时,同一个 token 再次出现在尚未完成的依赖路径中。
-
F_SYSTEM_DUPLICATE_APPLICATION_FEATURE应用 Feature 重复注册
createApp 的 features 中出现了具有相同 key 的应用级 Feature。
-
F_SYSTEM_DUPLICATE_COMMAND_TOKEN命令 token 重复
两个已注册命令在同一父路径下使用了相同的 path token 或 alias。
-
F_SYSTEM_DUPLICATE_OPTION_TOKEN选项 token 重复
同一命令节点中的字段、Module option 或动作选项占用了相同 token。
-
F_SYSTEM_DUPLICATE_PROVIDERProvider token 重复或不明确
同一个 Module 重复注册 token,或请求方同时看到多个 imported Provider。
-
F_SYSTEM_EXPECTED_ARRAY_PARAM参数应为数组
aliases、Enum、DependsOn 或 Exclusive 等列表参数不是数组。
-
F_SYSTEM_HANDLER_ALIAS_REQUIRES_FLAG处理器 alias 需要 flag
@Handler 声明了 alias 或 aliases,却没有声明这些别名所缩写的 flag。
-
F_SYSTEM_HANDLER_FLAG_PATH_CONFLICT处理器 flag 与 path 冲突
同一个 @Handler 同时尝试通过选项 flag 和位置 path 选择方法。
-
F_SYSTEM_INTERNAL_INVARIANT运行时内部状态不一致
Func 编译器或参数解析器遇到了按公开 API 约束不应出现的内部状态。
-
F_SYSTEM_INVALID_APP_NAME应用名称无效
Config、Log 等磁盘能力收到的 appName 不是安全的单个路径片段。
-
F_SYSTEM_INVALID_APPLICATION_FEATURE应用 Feature 无效
createApp.features 中的值不是由 Func Feature factory 创建的对象。
-
F_SYSTEM_INVALID_APPLICATION_FEATURE_LIST应用 Feature 列表无效
createApp.features 不是 ApplicationFeature 数组。
-
F_SYSTEM_INVALID_ARGS_DECORATOR_TARGET@Args 装饰目标无效
@Args 被用于构造函数,而不是 Command 的 Handler 参数。
-
F_SYSTEM_INVALID_COMPLETION_BIN补全命令名无效
func/completion 收到的 bin 为空、包含空白或包含 NUL 字符。
-
F_SYSTEM_INVALID_COMPLETION_MODE补全运行模式无效
补全环境变量包含了 func/completion 不支持的 source 或 complete 模式。
-
F_SYSTEM_INVALID_COMPLETION_REQUEST补全请求无效
complete() 收到的 args 不是字符串数组,或 incomplete 不是字符串。
-
F_SYSTEM_INVALID_COMPLETION_SHELL补全 Shell 无效
completionSource() 收到了不支持的 shell 名称。
-
F_SYSTEM_INVALID_FIELD_DECORATOR_TARGET字段装饰器目标无效
字段选项或字段校验装饰器被用于实例属性以外的目标。
-
F_SYSTEM_INVALID_METHOD_DECORATOR_TARGET方法装饰器目标无效
方法装饰器被用于不支持的目标或 Handler 类型。
-
F_SYSTEM_INVALID_MODULE_EXPORT模块导出无效
Module.exports 包含本 Module 未注册、未导入或不可见的 Provider token。
-
F_SYSTEM_INVALID_MODULE_INPUT无效的模块输入
作为模块传入的 class 没有显式模块元数据。
-
F_SYSTEM_INVALID_OPTION_ALIAS选项 alias 无效
字段选项、OptionCommand 或处理器 flag 中的 alias 不是单字符。
-
F_SYSTEM_INVALID_OPTION_DECLARATIONModule option 声明无效
Module.options 中的值不是合法的 @Option 或 @OptionCommand class。
-
F_SYSTEM_INVALID_OPTION_TYPE选项类型无效
字段装饰器与属性生成的运行时类型不匹配。
-
F_SYSTEM_INVALID_OVERRIDE_TARGETOption override 目标无效
@Override 没有装饰恰好一个实例字段选项,或被用于不支持的目标。
-
F_SYSTEM_INVALID_PROVIDERProvider 定义无效
Module.providers 中的 class 或显式 Provider 对象不符合 DI 注册规则。
-
F_SYSTEM_INVALID_TOKEN命令或选项 token 无效
命令、选项、alias、flag 或 path token 为空、以连字符开头,或包含空白。
-
F_SYSTEM_MISSING_APP_NAME缺少应用名称
Config、Log 等需要应用目录的能力没有收到 appName。
-
F_SYSTEM_MISSING_HANDLER缺少命令处理器
命令没有定义任何 @Handler 方法。
-
F_SYSTEM_MISSING_PARAM_TYPES缺少参数类型元数据
运行时无法推断构造函数或 Handler 参数所请求的 Provider token。
-
F_SYSTEM_MISSING_PROVIDER缺少注入 Provider
当前 Module 看不到构造函数、Handler 或 factory 请求的 Provider token。
-
F_SYSTEM_MISSING_REQUIRED_PARAM缺少必要的装饰器参数
命令或选项声明缺少必要名称或其他独立值。
-
F_SYSTEM_MULTIPLE_DEFAULT_HANDLERS存在多个默认处理器
同一命令声明了多个不带 flag 或 path 的 @Handler。
-
F_SYSTEM_MULTIPLE_MAJOR_COMMANDS存在多个主命令
应用把多个命令注册为根命令。
-
F_SYSTEM_MULTIPLE_MISSING_COMMANDS存在多个缺失命令处理器
应用为未知命令名称注册了多个回退处理器。
-
F_SYSTEM_NO_MATCHING_HANDLER没有匹配的处理器
命令存在处理器,但当前调用没有匹配任何 path 或 flag,也不存在默认处理器。
-
F_SYSTEM_OPTION_OVERRIDE_REQUIREDOption 需要显式覆盖
较内层作用域声明了与上层 Module option 同名的字段或动作,但没有确认覆盖意图。
-
F_SYSTEM_UNKNOWN_HANDLER注册了未知处理器
应用中注册的 Command 缺少角色元数据,或 Provider 中声明了 @Handler。
脚手架错误
funcgo 与 create-func 输出的脚手架错误
-
F_SCAFFOLD_COMMAND_FAILED子命令执行失败
funcgo 无法启动子命令,或子命令以失败状态退出。
-
F_SCAFFOLD_ENTRY_NOT_FOUND未找到项目入口
funcgo 无法解析要运行或构建的 TypeScript 入口文件。
-
F_SCAFFOLD_INTERNAL_COMMAND_MISMATCH脚手架内部命令不匹配
脚手架解析出的命令与当前执行分支不一致。
-
F_SCAFFOLD_INVALID_PACKAGE_METADATApackage 元数据无效
funcgo 读取到的 package.json 元数据不符合预期格式。
-
F_SCAFFOLD_INVALID_PROJECT_NAME项目名称无效
create-func 收到的项目名称不能作为安全的包名或目录名。
-
F_SCAFFOLD_MULTIPLE_PROJECT_NAMES提供了多个项目名称
create-func 命令同时收到了多个项目名称。
-
F_SCAFFOLD_NEGATIVE_WATCH_GLOBwatch glob 不能为负模式
funcgo 的 watch 入口使用了以 ! 开头的排除 glob。
-
F_SCAFFOLD_PACKAGE_MANIFEST_NOT_FOUND未找到 package.json
funcgo 无法在目标项目中找到 package.json。
-
F_SCAFFOLD_PROJECT_EXISTS项目目录已经存在
create-func 不会覆盖已经存在的目标目录。
-
F_SCAFFOLD_TEMPLATE_DOWNLOAD_FAILED模板下载失败
create-func 无法从模板来源下载项目文件。
-
F_SCAFFOLD_TEMPLATE_METADATA_INVALID模板元数据无效
create-func 下载到的模板清单无法解析或缺少必要信息。
-
F_SCAFFOLD_WATCH_GLOB_BASE_NOT_FOUNDwatch glob 基础目录不存在
funcgo 无法找到 watch glob 中第一个通配符之前的目录。
-
F_SCAFFOLD_WATCH_PATH_NOT_FOUNDwatch 路径不存在
funcgo 收到的 watch 文件或目录在项目中不存在。
-
F_SCAFFOLD_WATCH_REQUIRES_WATCHwatch 选项缺少 watch 模式
funcgo 使用了仅在 watch 模式下有效的选项,但没有启用 watch。