# 模块源码拆成 BakNRet/{Public,Private},另提供单文件构建 原来是一个 3152 行、66 个函数的 `Common.psm1`。拆成 `BakNRet/BakNRet.psd1`(模块清单, `FunctionsToExport` 是显式白名单)、`BakNRet/BakNRet.psm1`(薄加载器)、`BakNRet/Public/*.ps1` (62 个对外函数,一函数一文件,文件名 = 函数名)、`BakNRet/Private/*.ps1`(4 个内部函数 + `State.ps1` 集中存放模块级状态)。 一函数一文件是社区里脚本模块的主流形态(调研实测:winutil 79 个、Terminal-Icons 24 个、 ModuleBuilder 23 个,全部如此);而"拆了还能合回去"是这套方案成立的前提,所以 `tools/Build-BakNRetModule.ps1` 从加载器里读出顺序拼回单文件,并且加载器的点源顺序 **只在加载器里出现一次**——一条断言盯着"点源的文件集合 = 磁盘文件集合"、 "导出名单 = `Public/` 目录"。 代价:日常要跳文件;顺序被隐式固化在加载器里(改顺序要改加载器)。