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

NX升级后@nx/node:webpack无法解析错误的排查与解决

NX升级后@nx/node:webpack执行器找不到的问题

问题背景

基础Express应用在NX 15版本下运行正常,执行标准升级流程:

nx migrate latest
nx migrate --run-migrations
rm -rf node_modules
npm i

之后执行nx build或nx serve命令均抛出以下错误:

> nx run api:serve --port 3000 --inspect


 >  NX   Unable to resolve @nx/node:webpack.

   Cannot find executor 'webpack' in  ...\node_modules\@nx\node\executors.json.

相关文件内容

node_modules/@nx/node/executors.json

{
  "executors": {
    "node": {
      "implementation": "./src/executors/node/node.impl",
      "schema": "./src/executors/node/schema.json",
      "description": "Execute a Node application."
    }
  },
  "builders": {
    "node": {
      "implementation": "./src/executors/node/compat",
      "schema": "./src/executors/node/schema.json",
      "description": "Execute a Node application."
    }
  }
}

项目project.json

{
  "name": "api",
  "$schema": "..\\..\\node_modules\\nx\\schemas\\project-schema.json",
  "sourceRoot": "apps/api/src",
  "projectType": "application",
  "targets": {
    "build": {
      "executor": "@nx/node:webpack",
      "outputs": ["{options.outputPath}"],
      "options": {
        "outputPath": "dist/apps/api",
        "main": "apps/api/src/server.ts",
        "tsConfig": "apps/api/tsconfig.app.json",
        "assets": ["apps/api/src/assets"]
      },
      "configurations": {
        "production": {
          "optimization": true,
          "extractLicenses": true,
          "inspect": false,
          "fileReplacements": [
            {
              "replace": "apps/api/src/environments/environment.ts",
              "with": "apps/api/src/environments/environment.prod.ts"
            }
          ]
        }
      }
    },
    "serve": {
      "executor": "@nx/node:node",
      "options": {
        "buildTarget": "api:build"
      },
      "configurations": {
        "production": {
          "buildTarget": "api:build:production"
        }
      }
    },
    "lint": {
      "executor": "@nx/linter:eslint",
      "outputs": ["{options.outputFile}"],
      "options": {
        "lintFilePatterns": ["apps/api/**/*.ts"]
      }
    },
    "test": {
      "executor": "@nx/jest:jest",
      "outputs": ["{workspaceRoot}/coverage/apps/api"],
      "options": {
        "jestConfig": "apps/api/jest.config.ts",
        "passWithNoTests": true
      }
    }
  },
  "tags": []
}

解决方案

通过新建应用迁移代码的方式解决:

# 创建新的Express应用
nx g @nx/express:app new-api --frontendProject client

# 删除原API应用
nx g @nx/workspace:rm api

# 将新应用重命名为原应用名称
nx g mv --project new-api api

操作完成后,新应用可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 23:55:27