Tengo una biblioteca Angular CLI donde cada componente solo debe importarse a través de sus puntos de entrada individuales (como Angular Material):
import {Foo} from '@myLib/foo import {Bar} from '@myLib/barAsí que no quiero un punto de entrada principal en la configuración de ng-packagr.
Ya tengo todos los puntos de entrada secundarios definidos y quiero eliminar el punto de entrada principal para que los usuarios no puedan simplemente " importar {Bar} desde '@myLib ", pero ng-package.json requiere un archivo de entrada y cuando dejo el archivo de entrada vacío me sale un error
ERROR: Error interno: no se pudo obtener el símbolo para el punto de entrada
Tengo que agregar al menos una exportación válida en el archivo de entrada.
El equipo de Angular Material parece haber entendido bien: https://github.com/angular/components/blob/master/src/material/index.ts
¿Alguna idea sobre cómo hacer esto?
No estoy seguro de si este escenario es compatible.
Estoy usando ng-packagr para una configuración similar y lo que parece funcionar (aunque no perfecto) es lo siguiente:
si tiene la siguiente estructura:
@mylib ├── src | ├── public_api.ts | └── *.ts ├── ng-package.json ├── package.json └── foo | ├── src | | ├── public_api.ts | | └── *.ts | └── ng-package.json └── bar ├── src | ├── public_api.ts | └── *.ts └── ng-package.jsonsi configura su paquete raíz.json con el nombre del alcance
{ "name": "@myLib" }configuraste tu raíz ng-package.json en esto
{ "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", "dest": "../../dist/@myLib" }y coloque una exportación de objeto vacía en su public_api.ts principal (es decir, /src/public_api.ts)
export default {};entonces deberías obtener la estructura que buscas
Espero eso ayude