在angular import opts中传递的参数被忽略

问题描述 投票:0回答:1

由于我只想在生产模式下加载我的@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')
})
angular webpack service-worker angular-compiler
1个回答
0
投票

通过使用来管理解决这个问题

new webpack.DefinePlugin({
    'process.env':{
        'NODE_ENV': JSON.stringify(isDevBuild ? 'dev' : 'prod'),
        'ISDEV': isDevBuild ? true : false,
     }
}),

并使用ISDEVparameter代替。出于某种原因,AOT编译器似乎在这种比较中不正确地工作。我很想知道原因!

© www.soinside.com 2019 - 2024. All rights reserved.