最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

npm ci 命令失败,无法读取未定义的属性“@angularanimations”

网站源码admin31浏览0评论

npm ci 命令失败,无法读取未定义的属性“@angular/animations”

npm ci 命令失败,无法读取未定义的属性“@angular/animations”

在为我的 Angular 项目执行 docker build 时,在 npm ci 步骤中,出现以下错误:

Cannot read property '@angular/animations' of undefined

由于没有正确的错误,我们无法找到解决方案。

包和节点的版本:

  • @angular/动画 - 15.2.9
  • Node.Js - 18.14.2
  • NPM - 9.5
  • 角度 CLI - 15.2.8

到目前为止我尝试过的:

  • 交叉检查 Animations 模块的 package.json 文件
  • 尝试降级@angular/animations 版本
  • 删除 package-lock.json 文件和 node_module 目录
  • 删除缓存并尝试

Docker文件:

FROM docker-images.artifactory.dummydomain/db/node:14.18-alpine as build

WORKDIR /usr/src/app
COPY . /usr/src/app
RUN npm install -g @angular/[email protected]
RUN npm ci 
RUN ng build --configuration=test
USER node
COPY --chown=node:node . .

Package.json 文件依赖:

    "@angular/animations": "^15.2.9",
    "@angular/cdk": "^15.2.9",
    "@angular/common": "^15.2.9",
    "@angular/compiler": "^15.2.9",
    "@angular/core": "^15.2.9",
    "@angular/forms": "^15.2.9",
    "@angular/localize": "^15.2.9",
    "@angular/material": "^15.2.9",
    "@angular/material-moment-adapter": "^15.2.9",
    "@angular/platform-browser": "^15.2.9",
    "@angular/platform-browser-dynamic": "^15.2.9",
    "@angular/router": "^15.2.9",
    "angular-in-memory-web-api": "^0.9.0",
    "core-js": "^3.6.2",
    "export-from-json": "^1.7.0",
    "hammerjs": "^2.0.8",
    "material-design-icons-iconfont": "^6.7.0",
    "moment": "^2.24.0",
    "ng-uikit-pro-standard": "^1.0.0",
    "ngx-spinner": "^15.0.1",
    "rxjs": "~6.6.7",
    "socket.io-client": "^4.5.4",
    "sweetalert2": "^11.6.9",
    "tslib": "^2.0.0",
    "vkbeautify": "^0.99.3",
    "zone.js": "~0.11.4"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^15.2.8",
    "@angular/cli": "^15.2.8",
    "@angular/compiler-cli": "^15.2.9",
    "@angular/language-service": "^15.2.9",
    "@types/jasmine": "~3.6.0",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "^12.11.1",
    "codelyzer": "^6.0.0",
    "jasmine-core": "~3.8.0",
    "jasmine-spec-reporter": "~5.0.0",
    "karma": "~6.4.2",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage-istanbul-reporter": "~3.0.2",
    "karma-jasmine": "~4.0.0",
    "karma-jasmine-html-reporter": "^1.7.0",
    "protractor": "~7.0.0",
    "ts-node": "~7.0.0",
    "tslint": "~6.1.0",
    "typescript": "~4.9.5"
  }

有人帮忙就好了。 TIA!

回答如下:

如果 npm 尝试处理它无法理解的锁定文件(错误消息根本没有帮助),则会发生此错误。 lockfile的格式是随时间变化的,npm在lockfile中用

lockfileVersion
参数标记当前版本:

  • 未提供版本:来自 npm v5 之前的 npm 版本的“古老的”shrinkwrap 文件。
  • 1:npm v5 和 v6 使用的 lockfile 版本。
  • 2:npm v7 和 v8 使用的 lockfile 版本。向后兼容 v1 锁文件。
  • 3:npm v9使用的lockfile版本。向后兼容 npm v7.

您正在使用 v14.18 作为基础映像,它随 npm v6 一起提供。在你的系统中你有 npm v9,所以

lockfileVersion
是 3。正如你在上面的列表中看到的,这种格式与 npm v6 不兼容。

推荐的修复方法是将 Node 基础映像的版本更新为 v16 (npm 8) 或 v18 (npm 9)。或者,您可以使用 npm v8 执行

npm install
,然后提交并推送生成的锁定文件。

发布评论

评论列表(0)

  1. 暂无评论