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

Angular依赖版本统一及Schema验证错误修复求助

解决方案

问题根源

  1. Angular依赖版本不统一(混合了15.0.0和15.2.9),易引发兼容性冲突
  2. angular.json中使用了Angular 16+才支持的@angular-devkit/build-angular:application构建器,但当前项目依赖Angular 15,导致Schema校验失败,提示缺少browserTarget属性

第一步:统一Angular依赖版本到15.2.9(15系列最新稳定版)

替换package.json中的依赖内容,确保所有Angular相关包版本一致:

{
  "dependencies": {
    "@angular/animations": "^15.2.9",
    "@angular/common": "^15.2.9",
    "@angular/compiler": "^15.2.9",
    "@angular/core": "^15.2.9",
    "@angular/forms": "^15.2.9",
    "@angular/platform-browser": "^15.2.9",
    "@angular/platform-browser-dynamic": "^15.2.9",
    "@angular/platform-server": "^15.2.9",
    "@angular/router": "^15.2.9",
    "@angular/ssr": "^15.2.9",
    "express": "^4.18.2",
    "rxjs": "~7.8.1",
    "tslib": "^2.6.2",
    "zone.js": "~0.12.0"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^15.2.9",
    "@angular/cli": "^15.2.9",
    "@angular/compiler-cli": "^15.2.9",
    "@types/express": "^4.17.21",
    "@types/jasmine": "~4.3.6",
    "@types/node": "^18.19.0",
    "jasmine-core": "~4.6.0",
    "karma": "~6.4.2",
    "karma-chrome-launcher": "~3.2.0",
    "karma-coverage": "~2.2.1",
    "karma-jasmine": "~5.1.0",
    "karma-jasmine-html-reporter": "~2.1.0",
    "typescript": "~4.9.5"
  }
}

第二步:修改angular.json适配Angular 15构建器

将构建器换回Angular 15支持的browser+server组合,修正Schema校验问题:

{
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "version": 1,
  "newProjectRoot": "projects",
  "projects": {
    "innoteq-angular-frontend": {
      "projectType": "application",
      "schematics": {
        "@schematics/angular:component": {
          "standalone": false
        },
        "@schematics/angular:directive": {
          "standalone": false
        },
        "@schematics/angular:pipe": {
          "standalone": false
        }
      },
      "root": "",
      "sourceRoot": "src",
      "prefix": "app",
      "architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            "outputPath": "dist/innoteq-angular-frontend/browser",
            "index": "src/index.html",
            "main": "src/main.ts",
            "polyfills": [
              "zone.js"
            ],
            "tsConfig": "tsconfig.app.json",
            "assets": [
              "src/favicon.ico",
              "src/assets"
            ],
            "styles": [
              "src/styles.css"
            ],
            "scripts": []
          },
          "configurations": {
            "production": {
              "budgets": [
                {
                  "type": "initial",
                  "maximumWarning": "500kb",
                  "maximumError": "1mb"
                },
                {
                  "type": "anyComponentStyle",
                  "maximumWarning": "2kb",
                  "maximumError": "4kb"
                }
              ],
              "outputHashing": "all"
            },
            "development": {
              "optimization": false,
              "extractLicenses": false,
              "sourceMap": true
            }
          },
          "defaultConfiguration": "production"
        },
        "serve": {
          "builder": "@angular-devkit/build-angular:dev-server",
          "options": {
            "browserTarget": "innoteq-angular-frontend:build"
          },
          "configurations": {
            "production": {
              "browserTarget": "innoteq-angular-frontend:build:production"
            },
            "development": {
              "browserTarget": "innoteq-angular-frontend:build:development"
            }
          },
          "defaultConfiguration": "development"
        },
        "server": {
          "builder": "@angular-devkit/build-angular:server",
          "options": {
            "outputPath": "dist/innoteq-angular-frontend/server",
            "main": "src/main.server.ts",
            "tsConfig": "tsconfig.server.json"
          },
          "configurations": {
            "production": {
              "outputHashing": "media"
            },
            "development": {
              "optimization": false,
              "extractLicenses": false,
              "sourceMap": true
            }
          },
          "defaultConfiguration": "production"
        },
        "extract-i18n": {
          "builder": "@angular-devkit/build-angular:extract-i18n",
          "options": {
            "buildTarget": "innoteq-angular-frontend:build"
          }
        },
        "test": {
          "builder": "@angular-devkit/build-angular:karma",
          "options": {
            "polyfills": [
              "zone.js",
              "zone.js/testing"
            ],
            "tsConfig": "tsconfig.spec.json",
            "assets": [
              "src/favicon.ico",
              "src/assets"
            ],
            "styles": [
              "src/styles.css"
            ],
            "scripts": []
          }
        },
        "prerender": {
          "builder": "@angular-devkit/build-angular:prerender",
          "options": {
            "routes": [
              "/"
            ]
          },
          "configurations": {
            "production": {
              "browserTarget": "innoteq-angular-frontend:build:production",
              "serverTarget": "innoteq-angular-frontend:server:production"
            }
          }
        }
      }
    }
  },
  "cli": {
    "analytics": "cd2554c4-9eb4-45d2-8e67-fc281fc1033e"
  }
}

第三步:重新安装依赖

执行命令更新依赖:

npm install

关键说明

  • 统一Angular版本可消除子包间兼容性冲突,15.2.9是15.x分支最后一个稳定版,bug最少
  • application构建器是Angular 16新特性,15不支持,需换回传统browser+server组合,并补充serve所需的browserTarget属性
  • 调整SSR和预渲染配置,使其符合Angular 15标准格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 08:25:54