@cwa/nuxt

中文文档
2.0.0-alpha.32发布于 2026/11/01MITTypeScriptES Module构建来源已验证

组件Web应用下一个模块。用于使用API Components Bundle创建组件驱动的web应用程序的UI

中文使用文档
文档目录6 节
  1. CWA模块在运行
  2. 模板使用该模块作为前端,API组件包作为后端
  3. 开发
  4. 产品毛羽
  5. 测试
  6. 分支的测试覆盖率 {{ current.branch }}

下一个模块

[! [codecov] (https://codecov。io / github components-web-app / cwa-nuxt-module /分公司/{{电流。分支}}/图表/ badge.svg ?令牌= Z6GQJN413O)] (https://app.codecov。io / gh / components-web-app / cwa-nuxt-module /树/{{电流。分支}})

该模块设计用于 API组件包 并将提供一个完整的用户界面和实用程序,以方便地创建自定义web应用程序与先进的在线内容管理系统

CWA模块在运行

模板使用该模块作为前端,API组件包作为后端

https://github.com/components-web-app/components-web-app

开发

  • 运行 pnpm run dev:prepare 生成类型存根。
  • 使用 pnpm run dev 开始 操场上 处于开发模式。

产品毛羽

  • 运行 pnpm run lint 或者 pnpm run lint:fix

测试

该模块分为四层进行测试。在这个模块中,每个特性都得到了验证。模板自己的e2e套件用于从模板构建的项目,而不是模块特性。

1. 单元和组件测试(Vitest)

  • pnpm run test:单次运行。规范位于它们所涵盖的代码旁边(*.spec.ts)。
  • pnpm run test:coverage一样,有保险。
  • pnpm run test:watch (或 pnpm run test:watch:coverage):开发时的观看模式。
  • pnpm vitest run --reporter=verbose path/to/file.spec.ts:一个文件。

2. 构建输出警卫

pnpm run test:e2e 建造操场和跑步 pnpm run test:e2e:guards 针对这个构建:

  • 包预算: 入口块和一个匿名访问者的页面预加载不持有管理或按需代码,并保持在他们的gzip预算(test/e2e/entry-bundle-markers.mjs, test/e2e/visitor-page-preloads.mjs). 当捆绑收缩时,降低预算。永远不要为了通过而举起它。
  • 预取: 管理块从不预取(test/e2e/prefetch-hints.mjs)。
  • 服务器响应: 状态码,页面缓存报头错误,站点地图缓存报头,以及服务器的API URL永远不会发布到浏览器。

pnpm run test:types 对模块和游乐场进行类型检查。 pnpm run test:fresh-install 打包该包,并将其安装到一个一次性应用程序中。

3. 管理浏览器测试:针对真实API进行演练,在CI中重播

管理功能(选择,添加,排序,发布,克隆,移动,共享组件徽章等)在一个真实的浏览器中使用剧作家测试(test/browser/admin.spec.mjs)。

CI从不与实时API对话。每个场景都是 排练 一次针对真正的API,然后提交排练(每个请求和响应)。CI 回放 它:记录的响应充当API的一部分,排练中缺少的任何请求都将失败。在CI中没有Docker或注册表的情况下,根据真正的bundle实际回答的内容测试模块。

重播 (什么CI运行在左腿上):

pnpm run dev:build
pnpm run test:browser                        # all scenarios
pnpm run test:browser --grep " 23\. "        # one scenario

排练 (记录真实的API)每当一个场景,它的种子数据或模块的请求改变:

  1. 在本地运行模板应用程序 https://localhost 与您正在测试的API组件包版本,以及 admin/admin 用户。
  2. pnpm run dev:build
  3. pnpm run test:browser:rehearse (或 --grep " 23\. " 对于一个场景)。
  4. 提交更改后的文件 test/browser/rehearsals/.

规则:

  • 播种你自己的数据。 每个场景都通过API (test/browser/seed.mjs),并且从不依赖于模板的fixture。
  • 记录bundle版本。 每个排练文件里都有。需要更新包的特性会针对该包进行排练,并且更改日志将其命名为最小版本。
  • 一个代理可以看到一切。 代理(test/browser/rehearsal.mjs)位于游乐场和API之间,因此它可以看到服务器端和浏览器的请求。水星本身就是一条无声的流,所以记录是确定的。
  • 默认值: 模板的Caddy根CA和bundle版本从 components-web-app-php-1 容器。用 REHEARSAL_CA, REHEARSAL_BUNDLE, REHEARSAL_PHP_CONTAINER 或者 REHEARSAL_API.
  • 没有睡觉。 除非场景允许,否则控制台错误或页面错误会使场景失败。等待一个积极的信号,而不是一个固定的延迟。
  • 记录仪也进行了测试。 test/browser/rehearsal.spec.ts (部分 pnpm run test)记录一个虚假的API,并在停止的情况下重播。它涵盖了:一次写入后的应答、未记录的请求失败、 path 回退、原点和水星重写、cookie编校和CORS。

4. 在你推我之前

pnpm run lint:fix, pnpm run test, pnpm run dev:build && pnpm run test:e2e:guards && pnpm run test:browser.

分支的测试覆盖率 {{ current.branch }}

![解码的日冕图像](https://codecov。io / github components-web-app / cwa-nuxt-module /分公司/{{电流。分支}}/图表/ sunburst.svg吗?令牌= Z6GQJN413O)

版本与发布记录

@cwa/nuxt 共发布 32 个版本,首次发布于 2026/09/25;过去 12 个月发布了 32 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.0.0-alpha.32latest2026/11/012 天前
2.0.0-alpha.312026/10/303 天前
2.0.0-alpha.302026/10/2310 天前
2.0.0-alpha.292026/10/2311 天前
2.0.0-alpha.282026/10/2311 天前
2.0.0-alpha.272026/10/2212 天前

关于 @cwa/nuxt 的常见问题

@cwa/nuxt 是什么?

组件Web应用下一个模块。用于使用API Components Bundle创建组件驱动的web应用程序的UI

如何安装 @cwa/nuxt?

在项目目录运行 npm install @cwa/nuxt,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 cwa,可以用 npx cwa 直接运行。

@cwa/nuxt 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@cwa/nuxt 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@cwa/nuxt 可以商用吗?

@cwa/nuxt 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@cwa/nuxt 还在维护吗?

最新版本 2.0.0-alpha.32 发布于 2026/11/01(2 天前);至今共发布 32 个版本,其中过去 12 个月发布了 32 个;首次发布于 2026/09/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。