如何在自定义NX Executor中调用@nx/esbuild Executor
在自定义Nx Executor中调用@nx/esbuild执行器
实现方案
1. 核心要点
要在自定义Executor里调用@nx/esbuild的执行器,需要注意两个关键:
- 必须传递完整的
context参数给esbuildExecutor,它依赖上下文信息定位项目、读取工作区配置 - 处理
esbuildExecutor的返回结果,根据执行状态决定是否继续后续自定义逻辑
2. 完整代码示例
import { esbuildExecutor, EsbuildExecutorOptions } from '@nx/esbuild'; import type { ExecutorContext } from '@nx/devkit'; // 让自定义选项继承esbuild的所有配置项,无需重复定义 export interface EchoExecutorOptions extends EsbuildExecutorOptions { // 可添加你的自定义配置字段 } export default async function echoExecutor( options: EchoExecutorOptions, context: ExecutorContext ): Promise<{ success: boolean }> { console.info(`Executing "echo"...`); // 调用esbuild执行器,传入完整参数 const esbuildResult = await esbuildExecutor(options, context); // 校验esbuild执行结果,失败则直接返回 if (!esbuildResult.success) { console.error('Esbuild执行失败,终止后续逻辑'); return { success: false }; } // 执行你的自定义逻辑 console.info('Esbuild执行完成,开始运行自定义逻辑...'); // 示例:复制静态资源、生成额外文件等自定义操作 // your custom code here return { success: true }; }
3. 注意事项
- 确保自定义选项接口继承
EsbuildExecutorOptions,这样可以直接复用原有的esbuild配置参数,无需手动重新定义所有选项 - 不要省略
context参数,否则esbuildExecutor无法正确获取项目根路径、工作区配置等关键信息 - 优先处理esbuild的执行结果,避免在构建失败的情况下执行无效的自定义逻辑
内容的提问来源于stack exchange,提问作者Jon Sud
相关产品推荐
相关产品推荐

