You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

现有NX工作区自定义插件已识别,但任务推断逻辑未执行求助

NX自定义插件任务推断生效的必要操作
  • 构建并本地链接插件
    NX插件必须构建后才能被工作区正确识别,先执行构建命令:

    npx nx build tooling/my-plugin
    

    构建完成后,在工作区根目录执行本地安装,让工作区引用构建后的插件代码:

    npm install ./dist/tooling/my-plugin
    

    (如果用pnpm或yarn,可替换为对应的本地安装/link命令)

  • 修正createNodesV2的返回结构
    当前你的createNodesV2返回空数组,不符合NX任务推断的要求,需要返回包含项目任务配置的对象。示例代码:

    import { CreateNodesV2 } from '@nx/devkit';
    
    export const createNodesV2: CreateNodesV2 = [
      '*', // 匹配所有项目,可根据需要修改匹配规则
      (configFilePath, options, context) => {
        console.log('Running createNodesV2');
        return {
          projects: {
            // 这里可以动态遍历项目,或者指定具体项目名
            'your-project-name': {
              targets: {
                'custom-inferred-task': {
                  executor: '@nx/js:tsc', // 可使用现有executor或插件自定义executor
                  options: {
                    tsConfig: 'packages/your-project-name/tsconfig.json'
                  }
                }
              }
            }
          }
        };
      },
    ];
    

    核心是返回的对象必须包含projects字段,每个项目下的targets就是你要推断生成的任务配置。

  • 检查插件package.json配置

    • 确认package.json中的name字段和nx.json里配置的@myorg/my-plugin完全一致
    • 确保main字段指向构建后的入口文件,比如构建后应为"main": "dist/src/index.js"
  • 验证任务推断效果
    运行以下命令查看项目的目标任务,确认推断的任务是否存在:

    npx nx show project your-project-name --targets
    

    也可以直接尝试运行推断的任务:

    npx nx run your-project-name:custom-inferred-task
    
  • 清理NX缓存
    NX会缓存插件相关信息,执行以下命令重置缓存,确保新配置生效:

    npx nx reset
    

内容的提问来源于stack exchange,提问作者grigori

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 11:03:15