传入的参数 angular import opts 被忽略
Parameter passed in angular import opts ignored
因为我只想在生产模式下加载我的 @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'
然后它被使用而不是其他方式),但在生产模式下,服务工作人员从不加载并且没有编译- 时间或运行时错误。此外,如果我将它记录到控制台,那么该值是预期的 true
并且如果我设置 enabled:true
.
服务工作者加载
我在我的 webpack 配置中使用它
new AngularCompilerPlugin({
tsConfigPath: './tsconfig.json',
entryModule: path.join(__dirname, 'ClientApp/app/app.module#AppModule')
})
通过使用
设法解决了这个问题
new webpack.DefinePlugin({
'process.env':{
'NODE_ENV': JSON.stringify(isDevBuild ? 'dev' : 'prod'),
'ISDEV': isDevBuild ? true : false,
}
}),
并改用 ISDEV
参数。出于某种原因,AOT 编译器似乎无法正确处理此类比较。我很想知道原因!
因为我只想在生产模式下加载我的 @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'
然后它被使用而不是其他方式),但在生产模式下,服务工作人员从不加载并且没有编译- 时间或运行时错误。此外,如果我将它记录到控制台,那么该值是预期的 true
并且如果我设置 enabled:true
.
我在我的 webpack 配置中使用它
new AngularCompilerPlugin({
tsConfigPath: './tsconfig.json',
entryModule: path.join(__dirname, 'ClientApp/app/app.module#AppModule')
})
通过使用
设法解决了这个问题new webpack.DefinePlugin({
'process.env':{
'NODE_ENV': JSON.stringify(isDevBuild ? 'dev' : 'prod'),
'ISDEV': isDevBuild ? true : false,
}
}),
并改用 ISDEV
参数。出于某种原因,AOT 编译器似乎无法正确处理此类比较。我很想知道原因!