-
Notifications
You must be signed in to change notification settings - Fork 4.9k
fix(taro-components): 组件与各lib解耦 #18150
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Walkthrough该变更将组件库从旧路径 @tarojs/components/lib/* 迁移到新包 @tarojs/components-library-*(react/solid/vue3),统一产物目录为 dist,并调整打包配置、TS 输出、脚本与别名解析。平台侧(H5 与 Harmony Hybrid)更新了组件适配器与别名映射,测试与类型声明随之同步。 Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant App as User App
participant Bundler as Bundler (Webpack/Vite)
participant H5 as H5 Program
participant Lib as @tarojs/components-library-*
participant Runtime as ./runtime/components (fallback)
App->>Bundler: import from @tarojs/components
Bundler->>H5: resolve alias(@tarojs/components$)
alt useDeprecatedAdapterComponent
H5-->>Bundler: @tarojs/components-library-*/component-lib
Bundler->>Lib: load component-lib
else useHtmlComponents & framework==react/solid
opt solid special-case
H5-->>Bundler: @tarojs/components-react/dist/solid
Bundler->>Lib: load solid adapter
end
H5-->>Bundler: ./runtime/components (others)
Bundler->>Runtime: load runtime components
else default
H5-->>Bundler: @tarojs/components-library-*
Bundler->>Lib: load framework adapter
end
sequenceDiagram
autonumber
participant Stencil as Stencil Build
participant TC as @tarojs/components
participant Proxy as proxiesFile (dist/lib/*/components.ts)
participant Library as components-library-*
Stencil->>TC: build web components
Stencil->>Proxy: generate framework proxies
Library->>Proxy: export index/component-lib via dist
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (8)
🚧 Files skipped from review as they are similar to previous changes (8)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (4)
packages/taro-platform-h5/package.json (1)
45-48: 新增组件库依赖与旧依赖并存,可能造成冗余已添加三条
components-library-*依赖,但仍保留@tarojs/components-react。
若平台仅依赖新包,可考虑移除旧包,减小安装体积并避免版本漂移。- "@tarojs/components-react": "workspace:*",请确认两套依赖并存是否确有必要。
packages/taro-components-library-react/tsconfig.json (1)
4-6: 建议排除编译产物目录,避免二次编译污染新增
outDir: "./dist"后,编译输出会落到工作目录内。如果上层tsconfig.root.json没有显式排除dist,增量编译或 IDE 可能把生成的.d.ts/.js再次当作输入文件,造成「重复声明」或「莫名语法错误」。
建议在当前tsconfig.json里加入"exclude": ["dist"]或确认根
tsconfig已全局排除。packages/taro-platform-harmony-hybrid/package.json (1)
43-45: 依赖重复,可能引入两套组件实现当前包同时依赖
@tarojs/components-react(旧包)@tarojs/components-library-react(新包)若两者同时被打包,可能出现组件实现冲突或包体积膨胀。建议:
- "@tarojs/components": "workspace:*", - "@tarojs/components-react": "workspace:*", + // 保留需要的一个版本即可请确认运行时只会加载一套组件库。
packages/taro-components-react/package.json (1)
41-42: React 组件包不应硬依赖 Solid 组件库
@tarojs/components-react引入@tarojs/components-library-solid会让未使用 Solid 的项目额外安装一套依赖,增加体积与安装时间。除非确有跨框架渲染需求,建议移除:- "@tarojs/components-library-solid": "workspace:*",确保 peer/optional 关系正确即可。
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (25)
packages/babel-plugin-transform-taroapi/__tests__/__mocks__/h5-definition.json(2 hunks)packages/taro-components-library-react/package.json(1 hunks)packages/taro-components-library-react/rollup.config.mjs(1 hunks)packages/taro-components-library-react/tsconfig.json(1 hunks)packages/taro-components-library-solid/package.json(1 hunks)packages/taro-components-library-solid/rollup.config.mjs(1 hunks)packages/taro-components-library-solid/tsconfig.json(1 hunks)packages/taro-components-library-vue3/package.json(1 hunks)packages/taro-components-library-vue3/rollup.config.mjs(1 hunks)packages/taro-components-library-vue3/tsconfig.json(1 hunks)packages/taro-components-react/package.json(1 hunks)packages/taro-components-react/src/index.react.ts(1 hunks)packages/taro-components-react/src/index.solid.ts(1 hunks)packages/taro-components-react/types/global.d.ts(1 hunks)packages/taro-components/package.json(1 hunks)packages/taro-components/scripts/stencil/stencil.config.ts(3 hunks)packages/taro-platform-h5/package.json(1 hunks)packages/taro-platform-h5/src/program.ts(5 hunks)packages/taro-platform-harmony-hybrid/build/config/harmony-definition.json(1 hunks)packages/taro-platform-harmony-hybrid/package.json(1 hunks)packages/taro-platform-harmony-hybrid/src/components/react/index.ts(2 hunks)packages/taro-platform-harmony-hybrid/src/components/vue3/index.ts(2 hunks)packages/taro-platform-harmony-hybrid/src/program.ts(6 hunks)packages/taro-platform-harmony-hybrid/types/component.d.ts(1 hunks)tests/__tests__/utils/compiler.ts(1 hunks)
🧰 Additional context used
🧠 Learnings (7)
📓 Common learnings
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
Learnt from: ianzone
PR: NervJS/taro#18146
File: packages/babel-plugin-transform-react-jsx-to-rn-stylesheet/package.json:12-14
Timestamp: 2025-08-08T02:32:58.207Z
Learning: 在 Taro 项目的 pnpm 工作区中,Vitest 相关依赖(vitest 和 vitest/coverage-istanbul)被管理在根目录的 package.json 中,而不是各个子包的 devDependencies 中。这是 monorepo 中依赖提升的标准做法。
📚 Learning: 2025-07-22T09:16:21.180Z
Learnt from: ianzone
PR: NervJS/taro#18056
File: packages/taro-runtime/tsconfig.json:10-10
Timestamp: 2025-07-22T09:16:21.180Z
Learning: 在使用 rollup-plugin-dts 的项目中,rollup.config.ts 等构建配置文件会被自动排除,不需要在 tsconfig.json 中手动排除。
Applied to files:
packages/taro-components-library-react/rollup.config.mjspackages/taro-components-library-react/tsconfig.jsonpackages/taro-components-library-vue3/rollup.config.mjspackages/taro-components-library-solid/rollup.config.mjspackages/taro-components-library-solid/tsconfig.jsonpackages/taro-components-library-vue3/tsconfig.jsonpackages/taro-components/scripts/stencil/stencil.config.tspackages/taro-components-library-vue3/package.jsonpackages/taro-components-library-solid/package.jsonpackages/taro-components-library-react/package.json
📚 Learning: 2025-05-25T18:02:31.387Z
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
Applied to files:
packages/taro-components-library-react/rollup.config.mjspackages/taro-components-library-react/tsconfig.jsontests/__tests__/utils/compiler.tspackages/taro-platform-harmony-hybrid/package.jsonpackages/taro-components-library-vue3/rollup.config.mjspackages/taro-components-library-solid/rollup.config.mjspackages/taro-components-library-solid/tsconfig.jsonpackages/taro-components-library-vue3/tsconfig.jsonpackages/taro-components-react/package.jsonpackages/taro-components/scripts/stencil/stencil.config.tspackages/taro-components/package.jsonpackages/taro-platform-harmony-hybrid/types/component.d.tspackages/taro-components-react/src/index.solid.tspackages/taro-components-react/types/global.d.tspackages/taro-components-library-vue3/package.jsonpackages/taro-platform-harmony-hybrid/src/components/react/index.tspackages/taro-components-library-solid/package.jsonpackages/taro-components-react/src/index.react.tspackages/taro-platform-h5/package.jsonpackages/taro-platform-harmony-hybrid/src/program.tspackages/taro-components-library-react/package.jsonpackages/taro-platform-harmony-hybrid/src/components/vue3/index.tspackages/taro-platform-h5/src/program.ts
📚 Learning: 2025-08-08T02:32:58.207Z
Learnt from: ianzone
PR: NervJS/taro#18146
File: packages/babel-plugin-transform-react-jsx-to-rn-stylesheet/package.json:12-14
Timestamp: 2025-08-08T02:32:58.207Z
Learning: 在 Taro 项目的 pnpm 工作区中,Vitest 相关依赖(vitest 和 vitest/coverage-istanbul)被管理在根目录的 package.json 中,而不是各个子包的 devDependencies 中。这是 monorepo 中依赖提升的标准做法。
Applied to files:
packages/taro-components-library-react/rollup.config.mjspackages/taro-components-library-react/tsconfig.jsontests/__tests__/utils/compiler.tspackages/taro-platform-harmony-hybrid/package.jsonpackages/taro-components-library-vue3/rollup.config.mjspackages/taro-components-library-solid/rollup.config.mjspackages/taro-components-library-solid/tsconfig.jsonpackages/taro-components-library-vue3/tsconfig.jsonpackages/taro-components-react/package.jsonpackages/taro-components/scripts/stencil/stencil.config.tspackages/taro-components/package.jsonpackages/taro-platform-harmony-hybrid/types/component.d.tspackages/taro-components-library-vue3/package.jsonpackages/taro-platform-harmony-hybrid/src/components/react/index.tspackages/taro-components-library-solid/package.jsonpackages/taro-components-react/src/index.react.tspackages/taro-platform-h5/package.jsonpackages/taro-components-library-react/package.jsonpackages/taro-platform-harmony-hybrid/src/components/vue3/index.tspackages/taro-platform-h5/src/program.ts
📚 Learning: 2025-06-23T00:09:31.233Z
Learnt from: ianzone
PR: NervJS/taro#17842
File: packages/jest-helper/tsconfig.json:9-9
Timestamp: 2025-06-23T00:09:31.233Z
Learning: 在 jest-helper 包中,src 目录下没有 __tests__ 测试目录,只包含 resolver.ts、sequencer.ts 和 snapshot 目录。不要假设包中存在测试目录结构。
Applied to files:
tests/__tests__/utils/compiler.tspackages/taro-components/scripts/stencil/stencil.config.tspackages/taro-components-library-solid/package.jsonpackages/taro-components-library-react/package.jsonpackages/taro-platform-h5/src/program.ts
📚 Learning: 2025-05-06T06:55:44.077Z
Learnt from: Single-Dancer
PR: NervJS/taro#17653
File: packages/taro-components-advanced/src/components/water-flow/node.ts:83-95
Timestamp: 2025-05-06T06:55:44.077Z
Learning: 在 Taro 的 getRectSizeSync 函数中,如果找不到指定的节点,函数会一直处于 pending 状态而不是抛出错误。在这种情况下,使用 try/catch 处理不够充分,需要添加超时处理如 Promise.race 来避免无限等待。
Applied to files:
packages/taro-platform-harmony-hybrid/src/program.ts
📚 Learning: 2025-07-11T14:04:05.557Z
Learnt from: ianzone
PR: NervJS/taro#17993
File: .github/advanced-issue-labeler.yml:20-63
Timestamp: 2025-07-11T14:04:05.557Z
Learning: 在 NervJS/taro 项目的 .github/advanced-issue-labeler.yml 中,平台标签被设计为可以多个共存。当用户选择"所有平台"时,系统会同时应用多个平台标签(如 T-h5, T-rn, T-weapp 等),这是期望的行为而非冲突。同样,"所有小程序"也会为小程序相关的标签应用多个标签。这种设计有助于跨平台问题的管理和维护者关注。
Applied to files:
packages/taro-platform-harmony-hybrid/src/program.ts
🧬 Code Graph Analysis (1)
packages/taro-components/scripts/stencil/stencil.config.ts (1)
packages/taro-components/scripts/stencil/output-target/index.ts (1)
solidOutputTarget(106-120)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
- GitHub Check: Build Rust Binding / stable - aarch64-apple-darwin
- GitHub Check: Build Rust Binding / stable - x86_64-apple-darwin
- GitHub Check: Build Rust Binding / stable - x86_64-unknown-linux-gnu
- GitHub Check: Build Rust Binding / stable - x86_64-pc-windows-msvc
- GitHub Check: Build Rust WASM / stable - wasm32-wasi
🔇 Additional comments (32)
packages/taro-components-library-solid/tsconfig.json (1)
5-5: outDir 调整已对齐 Rollup 配置,但请同步检查类型入口
outDir改为./dist与 rollup 的输出保持一致 👍。
请确认:
package.json的types/exports字段已指向dist内的声明文件;- 发布脚本或
.npmignore未误排除dist。packages/taro-components-library-vue3/rollup.config.mjs (1)
10-15: 确认已移除旧路径引用 @tarojs/components/lib/vue3在仓库中运行
rg -n "@tarojs/components/lib/vue3"未发现任何匹配,旧引用已清除,无需进一步操作。
packages/taro-components-library-react/rollup.config.mjs (1)
10-15: 请确认已清理旧的@tarojs/components/lib/react引用
我在项目中运行了以下命令,未发现任何相关引用:rg -n "@tarojs/components/lib/react" || true请手动检查是否存在别名导入或动态引用,确保代码库不再依赖旧组件。
packages/taro-components-library-solid/rollup.config.mjs (1)
10-15: dist 目录调整已就绪,注意 alias 配置同步输出目录改为
dist与 tsconfig 对齐 👍。
请同时检查所有 webpack / vite alias 是否已从旧路径更新至@tarojs/components-library-solid,避免运行期解析失败。packages/taro-platform-harmony-hybrid/build/config/harmony-definition.json (1)
2175-2178: 确认属性是否符合规范为
cover-view新增的marker-id与slot属性在主流小程序 / Harmony 规范中并不常见:
marker-id通常出现在map组件;slot关键字容易与组件插槽语义混淆。请确认这些字段确实受端上支持,并在文档中留痕,否则可能导致运行时报「未知属性」警告。
packages/babel-plugin-transform-taroapi/__tests__/__mocks__/h5-definition.json (1)
356-356: 新增的滚动视图属性定义正确为
scroll-view组件添加enhanced和showScrollbar属性定义是合理的,这些布尔类型属性与组件库重构后的增强功能保持一致。Also applies to: 366-366
packages/taro-components-library-vue3/tsconfig.json (1)
5-5: 输出目录配置正确将
outDir设置为"./dist"符合组件库解耦的目标,确保每个组件库包都有独立的构建输出目录,提高了包的隔离性。tests/__tests__/utils/compiler.ts (1)
60-61: 测试别名配置更新正确将组件库别名从旧的
@tarojs/components/lib/*命名空间更新为新的@tarojs/components-library-*命名空间,确保测试环境与重构后的包结构保持一致。packages/taro-components-react/src/index.solid.ts (1)
2-78: 组件导入路径迁移完整且正确所有从
@tarojs/components/lib/solid导入的组件已正确迁移到@tarojs/components-library-solid,本地组件导出保持不变。这完全符合组件库解耦的目标。packages/taro-components-react/types/global.d.ts (1)
7-13: 类型声明更新正确模块声明从旧的
@tarojs/components/lib/*命名空间正确迁移到新的@tarojs/components-library-*命名空间,同时保持了从@tarojs/components的重新导出,确保类型兼容性。packages/taro-components/scripts/stencil/stencil.config.ts (2)
15-15: LGTM! 构建输出路径调整符合解耦目标将 proxiesFile 路径从外部包源码目录 (
../taro-components-library-*/src/components.ts) 调整为本地构建输出目录 (dist/lib/*/components.ts),与组件库解耦的 PR 目标一致。Also applies to: 34-34, 40-40
92-93: LGTM! 注释格式优化注释中的格式调整提高了可读性。
packages/taro-platform-harmony-hybrid/types/component.d.ts (1)
8-8: LGTM! 模块声明更新符合新的包结构将模块声明从
@tarojs/components/lib/*更新为独立的@tarojs/components-library-*包,确保类型声明与新的组件库解耦结构保持一致。Also applies to: 12-12
packages/taro-components-react/src/index.react.ts (1)
7-76: LGTM! 系统性迁移到新的组件库包所有组件导出已从
@tarojs/components/lib/react迁移到独立的@tarojs/components-library-react包,实现了组件库的完全解耦。本地组件导出(如 Button、Icon 等)保持不变,确保向后兼容性。packages/taro-platform-harmony-hybrid/src/components/react/index.ts (1)
1-82: LGTM! Harmony Hybrid 平台的 React 组件导出迁移所有组件导出已系统性地从
@tarojs/components/lib/react迁移到@tarojs/components-library-react,与组件库解耦的整体架构保持一致。本地默认导出 HosMap 保持不变。packages/taro-components/package.json (2)
14-21: LGTM! 包文件清单更新符合解耦架构移除 "lib" 目录表明该包不再发布编译后的框架特定组件,与组件库解耦的设计目标一致。各框架组件现在由独立的
@tarojs/components-library-*包负责。
25-29: LGTM! 构建脚本简化合理构建脚本的简化反映了包职责的变化:不再需要复杂的多框架构建流程,专注于核心组件构建。移除的脚本(build:ci、build:library、dev:library-* 等)现在由各自独立的组件库包处理。
packages/taro-components-library-vue3/package.json (2)
7-17: 包结构标准化改进,符合解耦目标这些更改正确地实现了组件库的解耦:
- 移除
private字段使包可发布- 更新主入口点到
./dist/index.js- 添加标准的
exports字段支持现代模块解析- 提供了两个导出路径:根路径和组件库子路径
配置符合 Node.js 包导出标准且与其他框架库保持一致。
20-22: 构建脚本优化合理
prebuild脚本从fix.js改为fix.cjs,可能是为了更好的 CommonJS 兼容性clean脚本从相对路径改为本地dist目录,符合新的输出结构这些更改与包的解耦目标一致。
packages/taro-components-library-solid/package.json (2)
5-15: Solid 组件库配置与其他框架库保持一致配置更改与 Vue3 和 React 组件库完全一致:
- 移除
private字段- 主入口点标准化为
./dist/index.js- 添加现代
exports字段- 支持根路径和
./component-lib子路径导出这种一致性有利于维护和使用。
17-19: 构建脚本更新合理构建相关脚本的更改与其他组件库保持一致,支持新的本地构建输出结构。
packages/taro-platform-harmony-hybrid/src/components/vue3/index.ts (1)
1-82: Vue3 组件导出路径系统性迁移完成所有组件导出已成功从
@tarojs/components/lib/vue3迁移到新的@tarojs/components-library-vue3包命名空间:
- 单个组件导出路径更新完整
- 分组导出也已相应调整
- 注释的 Tabbar/TabItem 导出也保持了路径一致性
这种系统性迁移完美支持了组件与各库的解耦目标。
packages/taro-components-library-react/package.json (2)
7-17: React 组件库配置标准化完成配置更改与 Vue3 和 Solid 组件库完全一致:
- 移除
private字段使包可发布- 统一主入口点为
./dist/index.js- 添加标准
exports字段支持现代模块解析- 提供根路径和组件库子路径导出
三个框架组件库的一致性配置体现了良好的架构设计。
19-21: 构建流程标准化构建脚本的更改与其他组件库保持一致,支持新的解耦架构和本地输出结构。
packages/taro-platform-harmony-hybrid/src/program.ts (4)
49-49: 已弃用适配器组件路径更新正确组件库路径从
@tarojs/components/lib/${framework}/component-lib更新为@tarojs/components-library-${framework}/component-lib,与新的包结构保持一致。
55-65: 框架特定的组件适配器getter设计优秀用三个独立的getter(
componentAdapterReact、componentAdapterSolid、componentAdapterVue3)替代通用的componentAdaptergetter是一个很好的架构改进:
- 提供了更明确的框架特定解析
- 支持新的独立组件库包结构
- 提高了代码的可读性和维护性
103-105: Webpack别名配置正确更新别名配置已正确更新以使用新的组件库包:
@tarojs/components-library-react$指向 React 适配器@tarojs/components-library-solid$指向 Solid 适配器@tarojs/components-library-vue3$指向 Vue3 适配器这确保了模块解析的正确性。
127-127: Vue3组件加载器导入路径更新Vue3 components-loader 的导入路径已正确从
@tarojs/components/lib/vue3/components-loader更新为@tarojs/components-library-vue3/components-loader。packages/taro-platform-h5/src/program.ts (4)
57-60: 组件库路径更新正确新的组件库路径结构
@tarojs/components-library-${this.aliasFramework}符合解耦目标,正确支持不同框架的独立组件库包。
63-73: 框架特定的组件适配器实现得当将原来单一的
componentAdaptergetter 拆分为三个框架特定的 getter (componentAdapterReact、componentAdapterSolid、componentAdapterVue3) 是正确的设计,提供了更清晰的框架隔离。
123-125: Webpack 别名配置完整为每个框架组件库添加了明确的 webpack 别名配置,确保构建时能正确解析到对应的框架组件库。
$后缀的使用是正确的 webpack 别名精确匹配语法。
147-147: Vue3 组件加载器路径更新正确Vue3 框架下的组件加载器导入路径已正确更新为
@tarojs/components-library-vue3/components-loader,与新的包结构一致。Also applies to: 214-214
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
🧹 Nitpick comments (2)
packages/taro-components-library-vue3/scripts/fix.cjs (1)
21-21: 写文件更安全:确保目录存在、仅在内容变化时写入并显式编码当前无条件覆盖写入可能导致重复构建和缓存失效。建议确保目录存在并在内容有变更时才写入,同时显式使用 'utf8'。
-fs.writeFileSync(path.resolve(__dirname, '..', 'src/components.ts'), code) +const outPath = path.resolve(__dirname, '..', 'src', 'components.ts') +// 确保目录存在(Node 内置方式,避免依赖 fs-extra 特性) +fs.mkdirSync(path.dirname(outPath), { recursive: true }) +const prev = fs.existsSync(outPath) ? fs.readFileSync(outPath, 'utf8') : null +if (prev !== code) { + fs.writeFileSync(outPath, code, 'utf8') +}packages/taro-components-library-solid/scripts/fix.cjs (1)
4-4: 路径硬编码可读性与稳健性不足直接拼接
'node_modules/@tarojs/components/dist/lib/solid/components.ts'假设了包的内部结构,未来目录调整或采用不同包管理器布局(pnpm hoist 层级变化)时容易失效。建议用require.resolve('@tarojs/components/package.json')拿到包根路径后再拼路径,或在脚本里做两种路径的回退查找,提高兼容性。
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
packages/taro-components-library-react/scripts/fix.cjs(2 hunks)packages/taro-components-library-solid/scripts/fix.cjs(2 hunks)packages/taro-components-library-vue3/scripts/fix.cjs(2 hunks)packages/taro-platform-h5/src/program.ts(5 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- packages/taro-platform-h5/src/program.ts
🧰 Additional context used
🧠 Learnings (4)
📓 Common learnings
Learnt from: ianzone
PR: NervJS/taro#17993
File: .github/advanced-issue-labeler.yml:20-63
Timestamp: 2025-07-11T14:04:05.557Z
Learning: 在 NervJS/taro 项目的 .github/advanced-issue-labeler.yml 中,平台标签被设计为可以多个共存。当用户选择"所有平台"时,系统会同时应用多个平台标签(如 T-h5, T-rn, T-weapp 等),这是期望的行为而非冲突。同样,"所有小程序"也会为小程序相关的标签应用多个标签。这种设计有助于跨平台问题的管理和维护者关注。
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
Learnt from: ianzone
PR: NervJS/taro#18146
File: packages/babel-plugin-transform-react-jsx-to-rn-stylesheet/package.json:12-14
Timestamp: 2025-08-08T02:32:58.207Z
Learning: 在 Taro 项目的 pnpm 工作区中,Vitest 相关依赖(vitest 和 vitest/coverage-istanbul)被管理在根目录的 package.json 中,而不是各个子包的 devDependencies 中。这是 monorepo 中依赖提升的标准做法。
📚 Learning: 2025-05-25T18:02:31.387Z
Learnt from: ianzone
PR: NervJS/taro#17746
File: packages/taro-runtime/tsdown.config.ts:10-16
Timestamp: 2025-05-25T18:02:31.387Z
Learning: 在 taro-runtime 包的 tsdown 配置中,必须禁用 treeshake 来保留 dom-external/index.js 文件。
Applied to files:
packages/taro-components-library-vue3/scripts/fix.cjspackages/taro-components-library-react/scripts/fix.cjspackages/taro-components-library-solid/scripts/fix.cjs
📚 Learning: 2025-08-08T02:32:58.207Z
Learnt from: ianzone
PR: NervJS/taro#18146
File: packages/babel-plugin-transform-react-jsx-to-rn-stylesheet/package.json:12-14
Timestamp: 2025-08-08T02:32:58.207Z
Learning: 在 Taro 项目的 pnpm 工作区中,Vitest 相关依赖(vitest 和 vitest/coverage-istanbul)被管理在根目录的 package.json 中,而不是各个子包的 devDependencies 中。这是 monorepo 中依赖提升的标准做法。
Applied to files:
packages/taro-components-library-vue3/scripts/fix.cjspackages/taro-components-library-react/scripts/fix.cjspackages/taro-components-library-solid/scripts/fix.cjs
📚 Learning: 2025-06-23T00:09:31.233Z
Learnt from: ianzone
PR: NervJS/taro#17842
File: packages/jest-helper/tsconfig.json:9-9
Timestamp: 2025-06-23T00:09:31.233Z
Learning: 在 jest-helper 包中,src 目录下没有 __tests__ 测试目录,只包含 resolver.ts、sequencer.ts 和 snapshot 目录。不要假设包中存在测试目录结构。
Applied to files:
packages/taro-components-library-vue3/scripts/fix.cjspackages/taro-components-library-react/scripts/fix.cjspackages/taro-components-library-solid/scripts/fix.cjs
🧬 Code Graph Analysis (2)
packages/taro-components-library-vue3/scripts/fix.cjs (2)
packages/taro-components-library-react/scripts/fix.cjs (4)
componentsPath(4-4)path(2-2)fs(1-1)code(9-9)packages/taro-components-library-solid/scripts/fix.cjs (4)
componentsPath(4-4)path(2-2)fs(1-1)code(9-9)
packages/taro-components-library-react/scripts/fix.cjs (2)
packages/taro-components-library-solid/scripts/fix.cjs (4)
componentsPath(4-4)path(2-2)fs(1-1)code(9-9)packages/taro-components-library-vue3/scripts/fix.cjs (4)
componentsPath(4-4)path(2-2)fs(1-1)code(8-8)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: Build Rust Binding / stable - x86_64-apple-darwin
- GitHub Check: Build Rust Binding / stable - x86_64-pc-windows-msvc
🔇 Additional comments (1)
packages/taro-components-library-solid/scripts/fix.cjs (1)
38-38: 写入目标路径合理输出文件重写回本地
src/components.ts符合解耦目的,没有明显问题。
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #18150 +/- ##
=======================================
Coverage 55.97% 55.97%
=======================================
Files 416 416
Lines 21560 21560
Branches 5289 5287 -2
=======================================
Hits 12069 12069
- Misses 8002 8045 +43
+ Partials 1489 1446 -43
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
|
这个PR还有人跟进吗? |
这个 PR 做了什么? (简要描述所做更改)
如题
这个 PR 是什么类型? (至少选择一个)
这个 PR 涉及以下平台:
Summary by CodeRabbit