如何在 ng-packagr 中只有辅助入口点
How to only have secondary entry points in ng-packagr
我有一个 Angular CLI 库,其中每个组件只能通过它们各自的入口点(如 Angular Material)导入:
import {Foo} from '@myLib/foo
import {Bar} from '@myLib/bar
所以我不想在 ng-packagr 配置中使用主入口点。
我已经定义了所有次要入口点,我想删除主要入口点,这样用户就不能只是“从'@myLib导入{Bar}”,但是 ng-package.json 需要一个 entryFile,当我将 entryFile 留空时,我得到一个错误
错误:内部错误:无法获取入口点的符号
我必须在 entryFile 中添加至少一个有效导出。
Angular Material 团队似乎做对了 - https://github.com/angular/components/blob/master/src/material/index.ts
关于如何做到这一点有什么想法吗?
我不确定是否支持这种情况。
我正在使用 ng-packagr 进行类似的设置,以下似乎有效(虽然不是完美的):
如果你有以下结构:
@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.json
如果您使用作用域的名称设置根 package.json
{
"name": "@myLib"
}
您将根 ng-package.json 设置为此
{
"$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
"dest": "../../dist/@myLib"
}
并在您的主 public_api.ts 中放置一个空对象导出(即 /src/public_api.ts)
export default {};
那么你应该得到你正在寻找的结构
希望对您有所帮助
我有一个 Angular CLI 库,其中每个组件只能通过它们各自的入口点(如 Angular Material)导入:
import {Foo} from '@myLib/foo
import {Bar} from '@myLib/bar
所以我不想在 ng-packagr 配置中使用主入口点。
我已经定义了所有次要入口点,我想删除主要入口点,这样用户就不能只是“从'@myLib导入{Bar}”,但是 ng-package.json 需要一个 entryFile,当我将 entryFile 留空时,我得到一个错误
错误:内部错误:无法获取入口点的符号
我必须在 entryFile 中添加至少一个有效导出。
Angular Material 团队似乎做对了 - https://github.com/angular/components/blob/master/src/material/index.ts
关于如何做到这一点有什么想法吗?
我不确定是否支持这种情况。
我正在使用 ng-packagr 进行类似的设置,以下似乎有效(虽然不是完美的):
如果你有以下结构:
@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.json
如果您使用作用域的名称设置根 package.json
{
"name": "@myLib"
}
您将根 ng-package.json 设置为此
{
"$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
"dest": "../../dist/@myLib"
}
并在您的主 public_api.ts 中放置一个空对象导出(即 /src/public_api.ts)
export default {};
那么你应该得到你正在寻找的结构
希望对您有所帮助