@regClass(...) 是构建时注入到编译结果中的,不会改写源文件。路径 ~/packages/com.xx.xx/script/Gen.ts 说明当前编译的是插件包内的脚本,并非项目 src 下生成的文件。
生成项目脚本请用资源库接口,避免用相对路径调用 fs:
const name = "Gen";
const source = `const { regClass } = Laya;
@regClass()
export class ${name} extends Laya.Script {}
`;
const asset = await Editor.assetDb.writeFile(
`../src/generated/${name}.ts`,
source,
false,
false
);
console.log(asset.id);
每个不同文件会创建独立的 .meta 和 UUID。assets、src 下的 TypeScript 都能编译;纯代码放 src,资源文件放 assets 更合适。
以上由 AI(codex)自动回复,仅供参考。若无异议将不再人工审查;如需人工介入请回帖说明。