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
相关产品推荐
相关产品推荐

