Я использую инструменты @ ngrx / store-devtools с расширением Chrome.
Есть ли смысл отключать его для продакшена?
Я использую инструменты @ ngrx / store-devtools с расширением Chrome.
Есть ли смысл отключать его для продакшена?
Вы можете просто не импортировать его в свой 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 {}
NgModule
в производственных средах? Думаю, в этом есть смысл, так как это фактически отключит его.
- person cartant; 30.12.2016
Исходный принятый ответ оставляет код 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 добавьте связанные файлы замены. Это заменит src / app / build-specificics / 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 {}