Creé una biblioteca de datos, luego traté de incluir la biblioteca de datos en otra biblioteca creada. Construido bien, pero recibido: "No se proporcionó ningún nombre para el módulo externo 'my-data' en output.globals - adivinando 'myData'". ¿Qué me estoy perdiendo?
Complete los pasos para volver a crear.
mi-core.module.ts
import { NgModule } from '@angular/core'; import { MyCoreComponent } from './my-core.component'; import { MyDataModule } from 'my-data'; @NgModule({ declarations: [MyCoreComponent], imports: [MyDataModule], exports: [MyCoreComponent] }) export class MyCoreModule { }Esto se debe a que tiene una dependencia externa y necesita declarar el nombre utilizado para que el resumen sepa qué buscar al compilar el paquete UMD de my-core .
Para corregir la advertencia, declare sus my-data en ng-package.json
{ "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", "dest": "../../dist/my-core", "lib": { "entryFile": "src/public-api.ts", "umdModuleIds": { "my-data": "my-data" } } } Creo que esto se debe a que, dado que todas las dependencias se tratan como externas y sus my-data no se instalan a través de algo como npm, debe declarar la identificación del módulo UMD que se espera. Consulte https://github.com/ng-packagr/ng-packagr/blob/master/docs/dependencies.md#resolving-umd-module-identifiers
para cualquier otra persona que venga aquí por este error y lo anterior parece tedioso de hacer O simplemente se pregunta qué cambió para que necesite esto de repente como yo.
En mi caso (para que la broma funcione) había cambiado lo siguiente en tsconfig:
"compilerOptions": { "module": "commonjs", "target": "esnext", "angularCompilerOptions": { "preserveWhitespaces": false }de regreso:
"compilerOptions": { "module": "esnext", "target": "es5" }No tengo idea de por qué esto funciona, sigo leyendo a través de la madriguera del conejo proporcionada por el respondedor anterior y todavía estoy tratando de hacer que funcionen las pruebas de broma y que se construya mi biblioteca. De todos modos, espero que esto ayude a alguien.