由于我只想在生产模式下加载@angular/service-worker
,我已将以下内容添加到我的webpack配置中:
new webpack.DefinePlugin({
'process.env': {
'NODE_ENV': JSON.stringify(isDevBuild ? 'dev' : 'prod')
}
})
但是,如果我尝试将其用作
imports: [
ServiceWorkerModule.register('/ngsw-worker.js', { enabled: (process.env.NODE_ENV === 'prod') })
]
然后它在开发模式下按预期工作(即如果我将等式设为'dev'
然后使用它而不是其他),但在prod模式下,服务工作者永远不会加载并且没有编译时或运行时错误。此外,如果我将其记录到控制台,则值为true
,如果我设置enabled:true
,则会加载服务工作者。
我在我的webpack配置中使用它
new AngularCompilerPlugin({
tsConfigPath: './tsconfig.json',
entryModule: path.join(__dirname, 'ClientApp/app/app.module#AppModule')
})
答案 0 :(得分:0)
使用
管理解决此问题new webpack.DefinePlugin({
'process.env':{
'NODE_ENV': JSON.stringify(isDevBuild ? 'dev' : 'prod'),
'ISDEV': isDevBuild ? true : false,
}
}),
并改为使用ISDEV
参数。出于某种原因,AOT编译器似乎在这种比较中不正确地工作。我很想知道原因!