@build-script/codegen
v1.0.18
Published
根据搜索指定目录中的所有 `.generator.ts` 结尾的文件,调用其中的 `generate` 函数,将结果写入 `.generated.ts`。
Readme
codegen - 代码生成器
根据搜索指定目录中的所有 .generator.ts 结尾的文件,调用其中的 generate 函数,将结果写入 .generated.ts。
TODOs
- [ ] watch时增加删除生成器
使用
codegen ./root1 ./root2 ... ./rootN [--watch] [--debug]生成器写法
import type { GenerateContext, ILogger } from '@build-script/codegen';
export async function generate(builder: GenerateContext, logger: ILogger) {
logger.info('Generating code...');
return 'console.log("Hello, world!");';
}
/** optional */
export async function dispose() {
// do something
}也可以这样写
import type { GenerateContext, ILogger } from '@build-script/codegen';
class Generator {
async generate(builder: GenerateContext, logger: ILogger) {}
/** optional */
async dispose() {}
}
export default new Generator();可以生成多个文件
import type { GenerateContext } from '@build-script/codegen';
export async function generate(builder: GenerateContext) {
const someOtherFile1 = builder.file("base-name-of-file.tsx"); // 生成的文件名为 base-name-of-file.generated.tsx
someOtherFile1.append("export function foo() { return <div />; }");
return 'console.log("Hello, world!");';
}建议
- 在
.gitignore添加:*.generated.*
