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

安装@angular/pwa报错:未指定动态导入回调,二次执行出段错误

安装@angular/pwa时出现动态导入错误及Segmentation fault的原因与解决方法

安装@angular/pwa时出现错误:

$ ng add @angular/pwa --project angular-tic-tac-toe
ℹ 使用包管理器: npm
✔ 找到兼容包版本: @angular/pwa@15.2.9.
✔ 已加载包信息。

将安装并执行包@angular/pwa@15.2.9。
是否继续? 是
✔ 包安装成功。
A dynamic import callback was not specified.

第二次执行该命令时,出现Segmentation fault错误。

项目的package.json配置如下:

{
  "name": "angular-tic-tac-toe",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "watch": "ng build --watch --configuration development",
    "test": "ng test"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^15.1.0",
    "@angular/cdk": "^15.0.0",
    "@angular/common": "^15.1.0",
    "@angular/compiler": "^15.1.0",
    "@angular/core": "^15.1.0",
    "@angular/forms": "^15.1.0",
    "@angular/platform-browser": "^15.1.0",
    "@angular/platform-browser-dynamic": "^15.1.0",
    "@angular/router": "^15.1.0",
    "@nebular/eva-icons": "11.0.0",
    "@nebular/theme": "^11.0.0",
    "eva-icons": "^1.1.3",
    "rxjs": "~7.8.0",
    "tslib": "^2.3.0",
    "zone.js": "~0.12.0"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^15.1.4",
    "@angular/cli": "~15.1.4",
    "@angular/compiler-cli": "^15.1.0",
    "@schematics/angular": "~15.1.4",
    "@types/jasmine": "~4.3.0",
    "jasmine-core": "~4.5.0",
    "karma": "~6.4.0",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage": "~2.2.0",
    "karma-jasmine": "~5.1.0",
    "karma-jasmine-html-reporter": "~2.0.0",
    "typescript": "~4.9.4"
  }
}

可能的原因

  • Angular版本不兼容:项目核心Angular包是15.1.x,但安装的@angular/pwa是15.2.9,小版本差异会导致schematics执行时的动态导入逻辑出错,Angular工具链对版本一致性要求严格。
  • Nebular依赖版本严重滞后:项目中使用的@nebular/theme和@nebular/eva-icons是11.0.0版本(对应Angular 11),和当前Angular 15的依赖完全不兼容,会破坏整个项目的依赖树,触发动态导入错误,甚至导致Node.js进程内存溢出引发Segmentation fault。
  • Node.js版本问题:Segmentation fault通常和Node.js版本不兼容或内存不足有关,Angular 15要求Node.js版本为16.14.x或18.x,如果你的Node版本不在这个范围内,容易出现这类底层错误。
  • 缓存损坏:第一次安装失败后,npm缓存或Angular CLI的缓存可能已损坏,第二次执行命令时读取缓存文件导致进程崩溃。

解决方法

  • 统一Angular版本:安装与项目核心包版本一致的@angular/pwa,执行命令:
    ng add @angular/pwa@15.1.4 --project angular-tic-tac-toe
    
    确保所有Angular相关包的版本保持对齐。
  • 处理Nebular依赖冲突:要么升级Nebular到支持Angular 15的版本(当前最新稳定版为15.x),要么先临时移除Nebular相关依赖,完成PWA安装后再重新处理UI框架的兼容:
    npm uninstall @nebular/theme @nebular/eva-icons eva-icons
    
  • 调整Node.js版本:切换到Angular 15推荐的Node.js版本(16.14.0+或18.10.0+),可以用nvm管理多版本Node:
    # 安装nvm后切换版本
    nvm install 18
    nvm use 18
    
  • 清理缓存并重新安装依赖:
    rm -rf node_modules package-lock.json
    npm cache clean --force
    npm install
    
    清理后再尝试添加PWA。
  • 避免重复执行残留操作:检查项目根目录是否已生成ngsw-config.json或其他PWA相关文件,若有则手动删除,再重新执行安装命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 09:16:00