繁体   English   中英

@ ngrx / store-devtools用于生产模式

[英]@ngrx/store-devtools for production mode

我在Chrome扩展程序中使用@ ngrx / store-devtools工具。

在生产模式下禁用它是否有意义?

在生产模式下,您NgModule将其导入到NgModule

import { StoreDevtoolsModule } from '@ngrx/store-devtools';

let dev = [
  StoreDevtoolsModule.instrumentOnlyWithExtension()
];
if (environment.production) {
  dev = [];
  enableProdMode();
}

@NgModule({
  imports: [
    StoreModule.provideStore(rootReducer),
    ...dev
  ]
})
export class AppModule {}

最初接受的答案将store-devtools代码留在生产版本中,尽管从未使用过。

要从生产版本中完全删除store-devtools并保存捆绑包大小,请执行以下操作:

创建文件夹src/app/build-specifics

创建文件index.ts

import { StoreDevtoolsModule } from '@ngrx/store-devtools';
export buildSpecificModules = [StoreDevtoolsModule.instrument({maxAge: 25})];

创建文件index.prod.ts

export buildSpecificModules = [];

在angular.json中添加相关的fileReplacements。 这会将生产版本中的src / app / build-specifics / index.ts替换为index.prod.ts,从而从生产版本中删除store-devtools。

"production": {
    "optimization": true,
    "outputHashing": "all",
    "sourceMap": false,
    "extractCss": true,
    "namedChunks": false,
    "aot": true,
    "extractLicenses": true,
    "vendorChunk": false,
    "buildOptimizer": true,
    "serviceWorker": true,
    "ngswConfigPath": "src/ngsw-config.json",
    "fileReplacements": [
        {
            "replace": "src/environments/environment.ts",
            "with": "src/environments/environment.prod.ts"
        },
        {
            "replace": "src/app/build-specifics/index.ts",
            "with": "src/app/build-specifics/index.prod.ts"
        }
    ]
}

在app.module.ts中包括默认文件(与环境一样),angular.json fileReplacements将在构建应用程序时更改实际包含的文件。

import { buildSpecificModules } from './build-specifics';

@NgModule({
  imports: [
    StoreModule.provideStore(rootReducer),
    ...buildSpecificModules
  ]
})
export class AppModule {}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM