执行npm run build报错No provider for InjectionToken ng.v5.defaultTsConfig如何解决?
解决Angular打包时的
No provider for InjectionToken ng.v5.defaultTsConfig!报错 执行npm run build时触发如下报错:
No provider for InjectionToken ng.v5.defaultTsConfig! (InjectionToken ng.v5.packageTransform -> InjectionToken ng.v5.initTsConfigTransform -> InjectionToken ng.v5.defaultTsConfig)
当前使用的依赖版本:
- "@angular/animations": "14.2.8"
- "@angular/common": "14.2.8"
- "@angular/compiler": "14.2.8"
- "@angular/core": "14.2.8"
- "@angular/forms": "14.2.8"
- "@angular/platform-browser": "14.2.8"
- "@angular/platform-browser-dynamic": "14.2.8"
- "@angular/router": "14.2.8"
- "ng-packagr": "14.2.2"
以下是可行的解决步骤:
1. 清理依赖缓存并重装依赖
- 删除本地依赖目录和锁文件:
# macOS/Linux rm -rf node_modules package-lock.json # Windows rmdir /s /q node_modules && del package-lock.json - 重新安装依赖:
npm install
2. 检查ng-packagr配置文件
- 确认项目根目录下的
ng-package.json配置正确,需指定有效的tsConfig路径,示例配置:{ "$schema": "./node_modules/ng-packagr/ng-package.schema.json", "dest": "./dist", "lib": { "entryFile": "src/public-api.ts", "tsConfig": "tsconfig.lib.json" } } - 验证
tsconfig.lib.json文件存在,且包含Angular库编译所需的基础配置,比如compilerOptions中的target、module等参数符合Angular 14的要求。
3. 对齐ng-packagr与Angular版本兼容性
Angular 14对应的ng-packagr推荐使用同大版本的稳定版,可尝试升级到14.x系列的较新版本:
npm install ng-packagr@14.3.0 --save-dev
4. 同步Angular CLI版本
确保Angular CLI版本与核心依赖版本一致:
- 查看当前CLI版本:
ng version - 若版本不一致,安装对应版本:
npm install @angular/cli@14.2.8 --save-dev
内容的提问来源于stack exchange,提问作者Doctor Robot
相关产品推荐
相关产品推荐

