如何在自定义Nx工作区生成器执行末尾输出提示日志文本
原因
Nx生成器的执行逻辑为:先完整执行自定义生成器函数内部的所有同步、异步逻辑,待函数执行结束后,才会统一打印所有Tree变更对应的系统日志(包括文件创建、格式化等操作的提示)。因此直接在生成器函数体内调用logger.info输出的内容会早于系统日志,出现在输出顶部。
解决方案
将需要末尾展示的后续步骤日志,放到生成器返回的回调函数中即可。该回调会在Nx所有内置系统日志输出完成后执行,内容会固定出现在输出的最末尾,修改后的代码如下:
export default async function (tree: Tree, schema: GeneratorOptions) { await applicationGenerator(tree, { // 对应配置参数写在这里 }); // 格式化所有新增文件 await formatFiles(tree); // 返回后置回调,所有系统日志打印完成后才会执行此处逻辑 return () => { logger.info('后续操作步骤:'); logger.info('* 完善 /src/environment 目录下的配置文件信息'); logger.info('* 调整 /src/app/app.tsx 中的示例路由配置'); }; }
如果你的生成器需要同时返回其他异步任务,可以将日志逻辑整合到最终任务队列的末尾,同样能实现末尾输出的效果。
内容的提问来源于stack exchange,提问作者sjbuysse
相关产品推荐
相关产品推荐

