0

我正在将 PWA 集成到我的 Angular 项目中。它在注册ServiceWorkerModule时出错app.module.ts

app.module.ts

@NgModule({
 imports: [
 ...
 ServiceWorkerModule.register('/ngsw-worker.js', { enabled: environment.production })
 ]
})

当我跑步时ng build --prod给我这个错误

./src/main.ts 中的错误找不到模块:错误:无法解析 '/app/webel/src/main/webapp/webel/src 中的 './$$_gendir/app/app.module.ngfactory' ' 错误中的错误:模块 /app/webel/src/main/webapp/webel/node_modules/@angular/service-worker/service-worker.d.ts 的元数据版本不匹配,在 StaticSymbolResolver.getModuleMetadata 中找到版本 4,预期为 3 (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler/bundles/compiler.umd.js:25616:34) 在 StaticSymbolResolver._createSymbolsOf (/app/webel/src/main/webapp/webel /node_modules/@angular/compiler/bundles/compiler.umd.js:25404:46) 在 StaticSymbolResolver.getSymbolsOf (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler/bundles/compiler.umd .js:25385:14) 在 /app/webel/src/main/webapp/webel/node_modules/@angular/compiler/bundles/compiler。umd.js:24241:30 at Array.forEach () at extractProgramSymbols (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler/bundles/compiler.umd.js:24240:79) at AotCompiler .analyzeModulesAsync (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler/bundles/compiler.umd.js:23796:47) 在 CodeGenerator.codegen (/app/webel/src/main/webapp /webel/node_modules/@angular/compiler-cli/src/codegen.js:32:14) 在 Function.NgTools_InternalApi_NG_2.codeGen (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler-cli /src/ngtools_api.js:73:30) 在 _donePromise.Promise.resolve.then (/app/webel/src/main/webapp/webel/node_modules/@ngtools/webpack/src/plugin.js:428:58)在 process._tickCallback (internal/process/next_tick.js:160:7)forEach () at extractProgramSymbols (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler/bundles/compiler.umd.js:24240:79) at AotCompiler.analyzeModulesAsync (/app/webel/src/ main/webapp/webel/node_modules/@angular/compiler/bundles/compiler.umd.js:23796:47) 在 CodeGenerator.codegen (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler- cli/src/codegen.js:32:14) 在 Function.NgTools_InternalApi_NG_2.codeGen (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler-cli/src/ngtools_api.js:73:30 ) 在 _donePromise.Promise.resolve.then (/app/webel/src/main/webapp/webel/node_modules/@ngtools/webpack/src/plugin.js:428:58) 在 process._tickCallback (internal/process/ next_tick.js:160:7)forEach () at extractProgramSymbols (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler/bundles/compiler.umd.js:24240:79) at AotCompiler.analyzeModulesAsync (/app/webel/src/ main/webapp/webel/node_modules/@angular/compiler/bundles/compiler.umd.js:23796:47) 在 CodeGenerator.codegen (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler- cli/src/codegen.js:32:14) 在 Function.NgTools_InternalApi_NG_2.codeGen (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler-cli/src/ngtools_api.js:73:30 ) 在 _donePromise.Promise.resolve.then (/app/webel/src/main/webapp/webel/node_modules/@ngtools/webpack/src/plugin.js:428:58) 在 process._tickCallback (internal/process/ next_tick.js:160:7)79) 在 AotCompiler.analyzeModulesAsync (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler/bundles/compiler.umd.js:23796:47) 在 CodeGenerator.codegen (/app/webel/src /main/webapp/webel/node_modules/@angular/compiler-cli/src/codegen.js:32:14) 在 Function.NgTools_InternalApi_NG_2.codeGen (/app/webel/src/main/webapp/webel/node_modules/@angular /compiler-cli/src/ngtools_api.js:73:30) 在 _donePromise.Promise.resolve.then (/app/webel/src/main/webapp/webel/node_modules/@ngtools/webpack/src/plugin.js: 428:58) 在 process._tickCallback (internal/process/next_tick.js:160:7)79) 在 AotCompiler.analyzeModulesAsync (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler/bundles/compiler.umd.js:23796:47) 在 CodeGenerator.codegen (/app/webel/src /main/webapp/webel/node_modules/@angular/compiler-cli/src/codegen.js:32:14) 在 Function.NgTools_InternalApi_NG_2.codeGen (/app/webel/src/main/webapp/webel/node_modules/@angular /compiler-cli/src/ngtools_api.js:73:30) 在 _donePromise.Promise.resolve.then (/app/webel/src/main/webapp/webel/node_modules/@ngtools/webpack/src/plugin.js: 428:58) 在 process._tickCallback (internal/process/next_tick.js:160:7)代码生成 (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler-cli/src/codegen.js:32:14) 在 Function.NgTools_InternalApi_NG_2.codeGen (/app/webel/src/main/ webapp/webel/node_modules/@angular/compiler-cli/src/ngtools_api.js:73:30) 在 _donePromise.Promise.resolve.then (/app/webel/src/main/webapp/webel/node_modules/@ngtools/ webpack/src/plugin.js:428:58) 在 process._tickCallback (internal/process/next_tick.js:160:7)代码生成 (/app/webel/src/main/webapp/webel/node_modules/@angular/compiler-cli/src/codegen.js:32:14) 在 Function.NgTools_InternalApi_NG_2.codeGen (/app/webel/src/main/ webapp/webel/node_modules/@angular/compiler-cli/src/ngtools_api.js:73:30) 在 _donePromise.Promise.resolve.then (/app/webel/src/main/webapp/webel/node_modules/@ngtools/ webpack/src/plugin.js:428:58) 在 process._tickCallback (internal/process/next_tick.js:160:7)

我正在使用以下版本,

"@angular/cli": "^1.7.3"
"ng-pwa-tools": "0.0.15"
"@angular/service-worker": "^6.0.1"
"@angular/compiler": "^4.4.4"

任何帮助,将不胜感激。

4

1 回答 1

0

完全迁移到 Angular 6.0 解决了这个问题。尽管rxjs在 6.0 中有一些重大更改,但这可以通过迁移到最新版本来解决,也可以通过添加立即修复rxjs-compat(Backword 兼容性)

于 2018-07-01T04:08:55.033 回答