ngx-scorm-wrapper不支持NgModule,Angular项目引入报错求助
解决Angular集成ngx-scorm-wrapper的编译错误
核心错误修正
你当前的代码存在基础使用错误:ScormWrapperService是服务类,并非NgModule,不能添加到@NgModule的imports数组中。
修正后的AppModule代码如下:
import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { ScormWrapperService } from 'ngx-scorm-wrapper'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, AppRoutingModule, ], providers: [ScormWrapperService], // 将服务移至providers数组 bootstrap: [AppComponent] }) export class AppModule { }
若你使用的是Angular 14及以上版本,更推荐依赖服务的providedIn: 'root'配置(若库本身未配置,可自行修改服务类),这样无需在AppModule的providers中声明:
@Injectable({ providedIn: 'root' }) export class ScormWrapperService { /* 服务原有逻辑 */ }
处理Ivy兼容问题
修正上述错误后,若仍出现Ivy相关报错,可按以下步骤操作:
正确配置ngcc脚本:你之前将
postinstall加到package-lock.json是错误的,需将其添加至package.json的scripts区块:{ "scripts": { "postinstall": "ngcc --properties es2020 browser module main --first-only --create-ivy-entry-points" } }执行
npm install触发ngcc编译生成兼容Ivy的库文件。检查库版本兼容性:确认
ngx-scorm-wrapper的最新版本是否支持当前Angular版本,若不兼容,尝试安装库的最新版本:npm install ngx-scorm-wrapper@latest临时禁用Ivy(兜底方案,不推荐):若上述方法均无效,可在
tsconfig.json中临时禁用Ivy:{ "angularCompilerOptions": { "enableIvy": false } }
内容的提问来源于stack exchange,提问作者ODINN
相关产品推荐
相关产品推荐

