dex*_*dex 6 angular-material angular-cli angular ng-packagr
我有一个 Angular CLI 库,其中每个组件只能通过它们各自的入口点(如 Angular Material)导入:
import {Foo} from '@myLib/foo
import {Bar} from '@myLib/bar
Run Code Online (Sandbox Code Playgroud)
所以我不想要 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
Run Code Online (Sandbox Code Playgroud)
如果您使用范围名称设置根 package.json
{
"name": "@myLib"
}
Run Code Online (Sandbox Code Playgroud)
你将你的根 ng-package.json 设置为这个
{
"$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
"dest": "../../dist/@myLib"
}
Run Code Online (Sandbox Code Playgroud)
并在您的主 public_api.ts(即 /src/public_api.ts)中放置一个空对象导出
export default {};
Run Code Online (Sandbox Code Playgroud)
那么你应该得到你正在寻找的结构
希望能帮助到你
| 归档时间: |
|
| 查看次数: |
2410 次 |
| 最近记录: |