【问题标题】:Error with angular & angular/cli versions角度和角度/cli版本错误
【发布时间】:2022-02-11 00:07:07
【问题描述】:

我在 Angular docker 项目中遇到此错误:

industrialareas_angular_ctnr | This version of CLI is only compatible with Angular versions ^13.0.0-next || >=13.0.0 <14.0.0,
industrialareas_angular_ctnr | but Angular version 12.2.16 was found instead.

我的 Dockerfile-angular 文件是:

FROM node:14
WORKDIR /usr/src/app
RUN npm uninstall -g @angular/cli
RUN npm uninstall @angular/cli
RUN npm i @angular/cli@12.2.8
RUN npm cache clean --force
COPY ./project/package*.json .
RUN npm install
RUN npm link @angular/cli
COPY ./project .
EXPOSE 4200
CMD npm start

我的 docker-compose.yml 文件是:

version: '3.7'
services:
  angular:
    container_name: industrialareas_angular_ctnr
    build:
      context: .
      dockerfile: Dockerfile-angular
    restart: unless-stopped
    volumes:
      - ./project/src:/usr/src/app/src
    ports:
      - 4200:4200

而package.json文件是:

...
"dependencies": {
  ...
  "@angular/core": "~12.2.0",
  ...
},
"devDependencies": {
  ...
  "@angular/cli": "~12.2.8",
  ...

我已经检查了这个link的兼容性版本

有人可以帮帮我吗?提前致谢。

【问题讨论】:

  • 您能在这里提供ng --version 命令的结果吗?可能@angular/cli全局安装,版本高于12.2.8。
  • 您能否编辑问题以包含更完整的minimal reproducible example?您提到了一个 Docker 项目,错误消息看起来像 Docker Compose 输出;您的 Dockerfile 中有什么,您是否在为 docker-compose.yml 中的 node_modules 树使用匿名卷?

标签: node.js angular docker npm


【解决方案1】:

你在 JSON 中声明的 Angular CLI 版本与你使用的 Angular 核心版本不兼容:如果你发布整个 package.json 文件内容会更清楚。

要解决问题,您可以将 angular core 版本升级到 13.0.0 及下一个版本,或者您可以降级 angular cli 版本:链接不是来自官方文档,因此不可行

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。
【解决方案2】:

问题在于 node 带来了最新的预定义版本的 angular cli,特别是 @angular/cli@13.2.3 并且 docker 命令默认采用了它。

在 Dockerfile 上替换这一行:

RUN npm link @angular/cli

到这里:

RUN npm link @angular/cli@12.2.8

一切正常!

【讨论】:

    猜你喜欢
    • 2017-11-08
    • 1970-01-01
    • 2022-11-24
    • 2022-01-21
    • 2016-11-16
    • 1970-01-01
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多