@blotch/angular-lynx- 建设
角 CLI 构建器 角线数字 : ng build, (中文(简体) ), ng serve, (中文(简体) ), ng test 财务报告和审定财务报表 ng extract-i18n 给林克思,和 ng build --platform ios|android|all 为本地应用程序.
ng add @blotch/angular-lynx # installs this package and sets up angular.json
这是AngularLynx应用程序需要的唯一依赖,因为 @angular/build 用于网络应用:它带来快活, 编译 Angular 的 rsbuilding 插件, QR 代码插件和带它的本地应用构建器 .
构建器
// angular.json, as `ng add` writes it
"build": {
"builder": "@blotch/angular-lynx-build:application",
"options": { "browser": "src/main.ts", "tsConfig": "tsconfig.app.json" /* ... */ },
"configurations": {
"production": { "budgets": [/* ... */], "outputHashing": "all" },
"development": { "optimization": false, "extractLicenses": false, "sourceMap": true }
},
"defaultConfiguration": "production"
},
"serve": {
"builder": "@blotch/angular-lynx-build:dev-server",
"configurations": {
"production": { "buildTarget": "my-app:build:production" },
"development": { "buildTarget": "my-app:build:development" }
},
"defaultConfiguration": "development"
},
"test": {
"builder": "@blotch/angular-lynx-build:unit-test"
},
"extract-i18n": {
"builder": "@blotch/angular-lynx-build:extract-i18n"
}
| 构建器 | 命令 | 它会做什么 |
|---|---|---|
application | ng build | 将 Lynx 捆绑( 和网页预览捆绑) 构建为 dist/ 与 转速 |
ng build --watch | 文件更改时重建捆绑 | |
ng build --platform ios | 然后构建 iOS app (--platform android 或者说 all 改为: dist/<platform>/ | |
... --run | 然后在模拟器、模拟器或电话上安装应用程序并打开(--device 选择一个) | |
dev-server | ng serve | 运行 Ryspey 用于 Lynx 探索器和网络预览的 Dev 服务器,并打印 QR 代码 Lynx 探索器扫描 |
unit-test | ng test | 用为Lynx设计的Angular自己的单位测试构建器(Vitest)进行单位测试 |
extract-i18n | ng extract-i18n | 用为 Lynx 所设置的 Angular 自己的提取- i18n 构建器提取 i18n 信件 |
他们的行为就像Angular自己的建造者:
- 配置和覆盖适用. 构建目标选项会随着Angular CLI的解析到达编译器,所以
ng build -c development和旗帜,如--optimization=false工作时. optimization在生产与开发之间做出决定. 没有mode选项:如同在Angular中,优化脚本的构建是生产构建,而不是一个带有dev模式的开发构建.ng build -c development是一种发展建设ng serve -c production服务于生产.ng serve建设其buildTarget,默认情况下,构建目标development配置 .--port编号 :--host覆盖server在 lynx.config.ts (英语).- 预算得到执行. 这个
budgets在构建目标中根据 Lynx 捆绑和组件样式表进行检查,并附上Angular 的信息;ng add大小initiallynx捆绑的预算 见插件的 读取。 。 。 . intl添加IntlAPIs Lynx缺少."intl": ["NumberFormat", "Collator"]把它们装入Lynx的捆绑中,并附有数据i18n.sourceLocale财务报告和审定财务报表i18n.locales;网页预览使用浏览器的. 见插件的 读取。 。 。 .--watch仅重建捆绑. 无法结合--platform: 使用ng serve开发,和ng build --platform为应用程序.baseHref前缀网页捆绑的资产 URL. Lynx for Web在显示捆绑的页面上解决了捆绑的图像,而非捆绑,因此在路径下服务了被捆绑的网页(Lynx for the settle)/shop/需求ng build --base-href=/shop/,它设置了 ruspey 的output.assetPrefix联 合 国web环境。 Lynx捆绑解决了它的资产 与自己相对并被孤立.
选项在 builders/application/schema.json, (中文(简体) ), builders/dev-server/schema.json, (中文(简体) ), builders/unit-test/schema.json 财务报告和审定财务报表 builders/extract-i18n/schema.json。 。 。 .
纳克测试
这个 unit-test 建造者是角力的 @angular/build:unit-test为林克丝准备的 它的选择是Angular's(include, (中文(简体) ), watch, (中文(简体) ), coverage, (中文(简体) ), setupFiles, (中文(简体) ), providersFile,.):它的图案是Angular's的复制品,测试使两者步入正轨. 它发现 *.spec.ts 财务报告和审定财务报表 *.test.ts 文档,而且测试会像应用程序一样提前编译。 在Angular的设置之上:
- 定义 AngularLynx 运行时读取的编译时间标记(
__DEV__, (中文(简体) ),__MAIN_THREAD__通过多填充(.)@blotch/angular-lynx-build/unit-test/lynx-globals负载在一切之前; - 负载
@blotch/angular-lynx-testing-library在项目有图书馆时设置的,所以render()在应用程序中没有设置文件或 Vitest 配置; - 手执 将建设目标作为Angular 目标,只有两个建设者共享的选项,因此Angular既不警告未知的建设者,也不拒绝仅使用 Lynx 选项;
- 将导入的图像、字体和媒体作为文件 URL加载,就像 raspey 在应用中所做的那样.
有两件事和任何Angular应用程序一样有效, 与一个简单的Vitest设置不同:
- 严格检查模板 . 使用 Lynx 元素导入的组件
LYNX_ELEMENTS,正如Angular语言服务已经要求的那样(生成组件确实如此)。 应用架构更松:它添加了CUSTOM_ELEMENTS_SCHEMA给每个组件,Angular的测试结构没有钩子. - 测试代码已选中类型,并且测试文件共享一个模块图(Angular的跑取器默认不会被隔离).
vi.mock相对进口不支持, 嘲笑@angular/core将泄露到其他测试文件.
纳克提炼-i18n
这个 extract-i18n 建造者是角力的 @angular/build:extract-i18n为林克丝准备的 它的选择是Angular's(format, (中文(简体) ), outputPath, (中文(简体) ), outFile和,至于 ng test它的图案是Angular的复制品 一个测试能保持同步 Angular CLI只为Angular的建设者之一所建造的项目选择取出器,因此AngularLynx应用需要目标: ng add 写它,和 add-i18n 让JSON写给 src/locale,哪个 loadTranslations() 拿着.
Angular的提取器会用Angular的应用程序构建器来编译应用程序. 一样 ng test,它以Angular 目标获得构建目标,并导入图像,字体和媒体负载作为文件 URL:没有装入器,Angular的构建在第一个导入图像时会停止. 无 @angular/localize上面写着要跑 add-i18n 而不是角质的 ng add @angular/localize它只设置了Angular自己的建造者.
lynx.config.ts (英语)
应用不需要 没有它, ng build 财务报告和审定财务报表 ng serve 取自 angular.json 的 rspey 需要, 默认的 AngularLynx app 想要:
source.entry是建造目标browser选项;- 环境是
lynx和web(浏览器预览); ng serve在全屏中添加QR代码插件.
添加一个 lynx.config.ts 来更改其中的任何一个或设置其它任何 rospyy 支持;每个默认只应用到它没有设置自己的地方. 建造者们加 @blotch/rsbuild-plugin-angular-lynx,它编译了Angular, 无论是哪种方式。 自己列出插件只通过选项 。 导入它 defineConfig 从这个包中,这取决于两个:
import { defineConfig, pluginAngularLynx } from '@blotch/angular-lynx-build';
export default defineConfig({
plugins: [pluginAngularLynx({ enableSSR: true })],
});
对于捆绑者处理的种类(资产和CSS模块进口), import.meta.env),从这里也参考它们,例如: ng add 显示在 src/rspeedy-env.d.ts数字 :
/// <reference types="@blotch/angular-lynx-build/client" />
如何组合
这个包是角CLI层. 作品发生于其依赖性:
@blotch/rsbuild-plugin-angular-lynx正在编译 Angular 内部快取. 它还独立运作,为直接运行的快速项目服务.@blotch/angular-lynx-native将Lynx捆绑变为iOS和Android应用程序.- 转速 及其 QR 代码插件。 构建者总是运行他们发布和测试的版本,因此一个应用程序不会安装.
ng test 财务报告和审定财务报表 ng extract-i18n 运行 Angular 的自建工程 @angular/build,哪个 ng new 安装:它必须匹配工程的Angular版本.