Mi plan era usar los módulos relacionados con NgRx (tienda, efectos, herramientas de desarrollo, etc.) en un módulo de biblioteca, no en el módulo de la aplicación.
Los módulos relacionados con NgRx se importan a libs/.../shell-module, que a su vez se importa a app-module.
Me gustaría proporcionar la variable environment.production en mis libs, pero no tengo idea de cómo obtenerla en el módulo de shell sin usar una ruta de importación relativa/absoluta.
libs/.../shell.module.ts :
import { environment } from '../../../../../../../apps/test-app/src/environments/environment'; imports:[ ... !environment.production ? StoreDevtoolsModule.instrument() : [] ... ] ¿No es posible resolver la variable environment.production en un módulo Angular?
Sé cómo inyectar cosas en los componentes, pero ¿cómo se inyectan en los módulos?
El truco de configuración .forRoot() no funcionó, porque la matriz de importaciones en el decorador de módulos está fuera del alcance de la clase de módulo.
¿Hay alguna otra manera de hacer esto sin acoplar estrechamente el archivo environment.ts y mis módulos libs?
Definir una ruta '@' para environment.ts en tsconfig.json y luego importarla al módulo todavía cuenta como un acoplamiento estrecho... ¿verdad?
para esto, generalmente también recomiendo mover la configuración del entorno a una biblioteca.
Por ejemplo, puede tener libs/shared/env/environment.*.ts o libs/domain/env/environment.*.ts . Deberá actualizar los pasos de compilación de su aplicación para asegurarse de que fileReplacements esté configurado para manejarlos. Luego, en su aplicación, puede usar import {environment} from '@company/shared/eng' .
Esto se vería un poco diferente si usara bibliotecas compilables, ya que le gustaría manejar los reemplazos de archivos en la definición de compilación de bibliotecas.