-
Notifications
You must be signed in to change notification settings - Fork 4.9k
fix(harmony): 修复 resource 后缀 #18377
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
fix(harmony): 修复 resource 后缀 #18377
Conversation
Walkthrough将仓库整体版本从 4.1.6 提升到 4.1.7-alpha.2;并在 taro-vite-runner 的 Harmony 资源处理逻辑中,fileToUrl 返回的 resource:// URL 现包含文件扩展名。无其他功能或 API 变更。 Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant Dev as Dev Server (Vite Runner)
participant Asset as Harmony Asset Helper
participant FS as File System
participant Runtime as Harmony Runtime
Dev->>Asset: fileToUrl(resourcePath)
Asset->>FS: 读取资源名与扩展名
FS-->>Asset: resourceName, ext
Note over Asset: 拼接 resource://base/media/<name><ext>
Asset-->>Dev: 返回 URL(含扩展名)
Dev-->>Runtime: 提供最终资源 URL
Runtime->>Runtime: 按 URL 加载资源
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests
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: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
packages/taro-vite-runner/src/harmony/asset.ts (1)
253-292
: 阻断:缓存存入了磁盘 resourcePath,二次/多次解析会返回本地路径而非 resource:// URL。首次调用返回
resource://base/media/...
,但命中缓存后会返回resourcePath
(磁盘路径),导致构建产物不一致并破坏运行时加载。应将缓存值设为最终的 resource:// URL。应用以下补丁修复缓存值与返回值一致性:
cache.set(id, resourcePath) - return 'resource://base/media/' + resourceName + ext + const builtUrl = 'resource://base/media/' + resourceName + ext + cache.set(id, builtUrl) + return builtUrl
🧹 Nitpick comments (7)
packages/taro-h5/package.json (1)
3-3
: 版本号更新到 4.1.7-alpha.2,变更合规。轻微建议:peerDependencies 中对 @tarojs/components 采用 workspace:~ 与多数包使用 workspace:* 存在风格差异,可后续统一(非阻塞)。
packages/taro-webpack5-prebundle/package.json (1)
3-3
: 版本提升通过,但建议放宽 webpack peer 约束版本 bump 合理;仓库中对 webpack 的声明混用精确版本与范围(部分包锁定 "5.91.0",也有使用 "^5" / "^5.91.0")。建议将 packages/taro-webpack5-prebundle/package.json 中对 webpack 的 peerDependencies 从 "5.91.0" 改为 "^5.91.0"(可单独 PR)。
packages/taro-plugin-react-devtools/package.json (1)
3-3
: 版本号 bump — 通过建议在发布说明中注明此包仅随版本对齐,无功能变化;后续可评估 react-devtools 锁定版本升级,但不属于本 PR 范畴。
packages/taro-service/package.json (1)
3-3
: 版本号 bump — 通过服务层无功能改动;请在变更日志中注明 Harmony 资源后缀修复属于 taro-vite-runner 范畴,避免用户误解为 Service 行为变更。
packages/taro-vite-runner/src/harmony/asset.ts (3)
283-283
: 正则字符类小坑:A-z
包含 `[]^_`` 等符号,可能产生非法资源名。建议使用
A-Za-z
明确限定,仅保留字母数字(下划线已作为替换结果,无需保留为合法输入)。- const resourceName = path.relative(appRoot, file).replace(ext, '').replace(/^[\\/]+/, '').replace(/[^A-z0-9]+/g, '_') + const resourceName = path + .relative(appRoot, file) + .replace(ext, '') + .replace(/^[\\/]+/, '') + .replace(/[^A-Za-z0-9]+/g, '_')
284-284
: 输出目录建议锚定到 appPath,避免依赖进程 CWD。当前
path.join(outputRoot, '..', ...)
是相对路径,若运行时 CWD 变化可能写错位置。建议以viteCompilerContext.cwd
为锚点。- const resourcePath = path.join(escapePath(outputRoot), '..', 'resources/base/media', `${resourceName}${ext}`) + const resourcePath = path.resolve( + appPath, + escapePath(outputRoot), + '..', + 'resources/base/media', + `${resourceName}${ext}` + )
286-288
: 微调:写入 Buffer 时不必指定encoding
,以免未来改为字符串时误写。当前传入的是 Buffer,fs 会忽略 encoding;为稳妥可移除。
- fs.writeFileSync(resourcePath, content, { - encoding: 'utf-8', - }) + fs.writeFileSync(resourcePath, content)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (80)
crates/native_binding/package.json
(1 hunks)npm/darwin-arm64/package.json
(1 hunks)npm/darwin-x64/package.json
(1 hunks)npm/linux-x64-gnu/package.json
(1 hunks)npm/linux-x64-musl/package.json
(1 hunks)npm/win32-x64-msvc/package.json
(1 hunks)package.json
(1 hunks)packages/babel-plugin-transform-react-jsx-to-rn-stylesheet/package.json
(1 hunks)packages/babel-plugin-transform-solid-jsx/package.json
(1 hunks)packages/babel-plugin-transform-taroapi/package.json
(1 hunks)packages/babel-preset-taro/package.json
(1 hunks)packages/create-app/package.json
(1 hunks)packages/css-to-react-native/package.json
(1 hunks)packages/eslint-config-taro/package.json
(1 hunks)packages/eslint-plugin-taro/package.json
(1 hunks)packages/jest-helper/package.json
(1 hunks)packages/postcss-html-transform/package.json
(1 hunks)packages/postcss-plugin-constparse/package.json
(1 hunks)packages/postcss-pxtransform/package.json
(1 hunks)packages/postcss-unit-transform/package.json
(1 hunks)packages/rollup-plugin-copy/package.json
(1 hunks)packages/shared/package.json
(1 hunks)packages/stylelint-config-taro-rn/package.json
(1 hunks)packages/stylelint-taro-rn/package.json
(1 hunks)packages/stylelint-taro/package.json
(1 hunks)packages/taro-api/package.json
(1 hunks)packages/taro-cli-convertor/package.json
(1 hunks)packages/taro-cli/package.json
(1 hunks)packages/taro-components-advanced/package.json
(1 hunks)packages/taro-components-library-react/package.json
(1 hunks)packages/taro-components-library-solid/package.json
(1 hunks)packages/taro-components-library-vue3/package.json
(1 hunks)packages/taro-components-react/package.json
(1 hunks)packages/taro-components-rn/package.json
(1 hunks)packages/taro-components/package.json
(1 hunks)packages/taro-extend/package.json
(1 hunks)packages/taro-framework-react/package.json
(1 hunks)packages/taro-framework-solid/package.json
(1 hunks)packages/taro-framework-vue3/package.json
(1 hunks)packages/taro-h5/package.json
(1 hunks)packages/taro-helper/package.json
(1 hunks)packages/taro-loader/package.json
(1 hunks)packages/taro-platform-alipay/package.json
(1 hunks)packages/taro-platform-ascf/package.json
(1 hunks)packages/taro-platform-h5/package.json
(1 hunks)packages/taro-platform-harmony-cpp/package.json
(1 hunks)packages/taro-platform-harmony-hybrid/package.json
(1 hunks)packages/taro-platform-harmony/package.json
(1 hunks)packages/taro-platform-jd/package.json
(1 hunks)packages/taro-platform-qq/package.json
(1 hunks)packages/taro-platform-swan/package.json
(1 hunks)packages/taro-platform-tt/package.json
(1 hunks)packages/taro-platform-weapp/package.json
(1 hunks)packages/taro-plugin-generator/package.json
(1 hunks)packages/taro-plugin-html/package.json
(1 hunks)packages/taro-plugin-http/package.json
(1 hunks)packages/taro-plugin-inject/package.json
(1 hunks)packages/taro-plugin-mini-ci/package.json
(1 hunks)packages/taro-plugin-react-devtools/package.json
(1 hunks)packages/taro-plugin-vue-devtools/package.json
(1 hunks)packages/taro-react/package.json
(1 hunks)packages/taro-rn-runner/package.json
(1 hunks)packages/taro-rn-style-transformer/package.json
(1 hunks)packages/taro-rn-supporter/package.json
(1 hunks)packages/taro-rn-transformer/package.json
(1 hunks)packages/taro-rn/package.json
(1 hunks)packages/taro-router-rn/package.json
(1 hunks)packages/taro-router/package.json
(1 hunks)packages/taro-runner-utils/package.json
(1 hunks)packages/taro-runtime-rn/package.json
(1 hunks)packages/taro-runtime/package.json
(1 hunks)packages/taro-service/package.json
(1 hunks)packages/taro-transformer-wx/package.json
(1 hunks)packages/taro-vite-runner/package.json
(1 hunks)packages/taro-vite-runner/src/harmony/asset.ts
(1 hunks)packages/taro-webpack5-prebundle/package.json
(1 hunks)packages/taro-webpack5-runner/package.json
(1 hunks)packages/taro-with-weapp/package.json
(1 hunks)packages/taro/package.json
(1 hunks)packages/taroize/package.json
(1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2025-09-05T18:40:45.775Z
Learnt from: ianzone
PR: NervJS/taro#18150
File: packages/taro-platform-harmony-hybrid/package.json:43-45
Timestamp: 2025-09-05T18:40:45.775Z
Learning: 在 tarojs/plugin-platform-harmony-hybrid 包中,tarojs/components-library-react、tarojs/components-library-solid 和 tarojs/components-library-vue3 必须作为直接依赖(dependencies)而不能作为 peer 依赖,因为插件源码中有对这些包的直接引用,包括 componentAdapter* getter 方法和 webpack 别名配置。
Applied to files:
packages/taro-components-library-solid/package.json
packages/taro-framework-react/package.json
packages/taro-platform-harmony-hybrid/package.json
packages/taro-components-library-vue3/package.json
packages/taro-framework-vue3/package.json
packages/taro-platform-harmony/package.json
packages/taro-platform-harmony-cpp/package.json
packages/taro-components/package.json
packages/taro-components-library-react/package.json
packages/taro-platform-h5/package.json
📚 Learning: 2025-08-25T22:16:50.118Z
Learnt from: ianzone
PR: NervJS/taro#18150
File: packages/babel-plugin-transform-taroapi/tests/__mocks__/h5-definition.json:2356-2356
Timestamp: 2025-08-25T22:16:50.118Z
Learning: The file `packages/babel-plugin-transform-taroapi/tests/__mocks__/h5-definition.json` is auto-generated by the post-build script `packages/taro-platform-h5/scripts/post-build.mjs`, which copies content from `taro-platform-h5/dist/definition.json`. This file should not be manually edited.
Applied to files:
packages/taro-platform-harmony-hybrid/package.json
packages/babel-plugin-transform-taroapi/package.json
packages/jest-helper/package.json
packages/taro-h5/package.json
packages/taro-platform-h5/package.json
packages/taro-plugin-html/package.json
packages/babel-preset-taro/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/package.json
⏰ 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-unknown-linux-gnu
- GitHub Check: Build Rust Binding / stable - x86_64-pc-windows-msvc
- GitHub Check: Build Rust Binding / stable - x86_64-apple-darwin
- GitHub Check: Build Rust WASM / stable - wasm32-wasi
🔇 Additional comments (75)
packages/taro-runtime/package.json (1)
3-3
: 版本号提升到 4.1.7-alpha.2:LGTM纯元数据变更,无风险点。
packages/taro-rn-runner/package.json (1)
3-3
: 版本号提升到 4.1.7-alpha.2:LGTM若本 PR 同步修复了 Harmony 资源 URL 后缀(如在
src/harmony/asset.ts
的fileToUrl
),请确保新增/更新单测覆盖该行为并在 RN/Harmony 示例工程中做一次真机/模拟器验证。packages/rollup-plugin-copy/package.json (1)
3-3
: 版本号提升到 4.1.7-alpha.2:LGTM无代码面变更,保持与生态 rollup ^4 的 peer 依赖一致即可。
packages/shared/package.json (1)
3-3
: 版本号提升到 4.1.7-alpha.2:LGTM纯元数据更新,无需额外动作。
packages/stylelint-taro/package.json (1)
3-3
: 版本号提升到 4.1.7-alpha.2:LGTM建议同步更新变更日志/发布说明,标注此次为 Harmony 资源后缀修复随版本推进的预发布版本。
packages/taro-runner-utils/package.json (1)
3-3
: 版本号提升到 4.1.7-alpha.2:LGTM与 runner 相关的工具包无代码变更,注意与上游 rollup 3/4 版本兼容矩阵即可。
packages/taro-platform-harmony-hybrid/package.json (1)
3-3
: 版本号提升到 4.1.7-alpha.2:LGTM — 组件库直依赖无需补充在 packages/taro-platform-harmony-hybrid/src/program.ts 中只发现 componentAdapter getter(基于 require.resolve('@tarojs/components'))和 alias 映射(@tarojs/components/lib -> componentAdapter),未发现对 tarojs/components-library-(react|solid|vue3) 的直接 import;若后续源码增加直接引用,应将对应包移入 dependencies。
package.json (1)
3-3
: 根包已升至 4.1.7-alpha.2 — 需在本地做一致性自检沙箱自动校验失败,仅能确认根 package.json 的 version 为 4.1.7-alpha.2;在本地逐项核验:
- 所有 package.json 的 version 是否与根一致(有输出即不一致)。
- 内部依赖(@tarojs/* 或 taro(-))是否全部使用 workspace:,无固定版本。
- Harmony 资源后缀修复是否已落地且有用例覆盖(确认 resource:// 返回路径包含扩展名,并检查相关测试)。
可在本地运行下面脚本逐项检查:
#!/bin/bash set -euo pipefail root_ver=$(jq -r '.version' package.json) # 1) 版本一致性 find . -name package.json -not -path '*/node_modules/*' -print0 | while IFS= read -r -d '' f; do v=$(jq -r '.version // empty' "$f") if [ -n "$v" ] && [ "$v" != "$root_ver" ]; then echo "Mismatch: $f => $v" fi done # 2) 内部依赖是否为 workspace:* find . -name package.json -not -path '*/node_modules/*' -print0 | while IFS= read -r -d '' f; do jq -r --arg f "$f" ' def internal(k): k|test("^@tarojs/") or k|test("^taro($|-)"); ( (.dependencies // {} | to_entries[]? | select(internal(.key) and ( .value | startswith("workspace:") | not )) | "\($f)\tdep\t\(.key)\t\(.value)"), (.devDependencies // {} | to_entries[]? | select(internal(.key) and ( .value | startswith("workspace:") | not )) | "\($f)\tdevDep\t\(.key)\t\(.value)"), (.peerDependencies // {} | to_entries[]? | select(internal(.key) and ( .value | startswith("workspace:") | not )) | "\($f)\tpeerDep\t\(.key)\t\(.value)") ) ' "$f" done # 3) 查找 Harmony 资源相关改动(可用 rg 或 grep) rg -nC2 --type ts 'resource://base/media|fileToUrl|resource://base' packages || grep -R --line-number -E 'resource://base/media|fileToUrl|resource://base' packages || true全部通过则 LGTM;若有输出,按提示修复后重提 PR。
packages/taro-react/package.json (1)
3-3
: 仅版本号变更为 4.1.7-alpha.2,变更安全。无 API/依赖改动,符合预期的预发布版本推进。
packages/taro-rn/package.json (1)
3-3
: 版本号更新正确;请确保与 @tarojs/runtime-rn 同步发布。避免 alpha 期间 RN 相关包版本漂移导致安装解析不一致。
packages/taro-with-weapp/package.json (1)
3-3
: 版本号提升到 4.1.7-alpha.2,无其它改动,LGTM。packages/taro-loader/package.json (1)
3-3
: 版本号更新 OK;注意与 peerDependencies 的发布节奏一致。本包 peerDependencies/webpack 固定在 5.91.0,保持现状即可;仅提醒在发版流程中同步验证。
packages/taro-components-advanced/package.json (1)
3-3
: 版本号更新为 4.1.7-alpha.2,变更合理。packages/taro-platform-weapp/package.json (1)
3-3
: 版本号更新一致,符合预发布推进。packages/taro-platform-swan/package.json (1)
3-3
: 版本号同步到 4.1.7-alpha.2,LGTM。packages/taro-runtime-rn/package.json (1)
3-3
: 确认:全仓版本已提升至 4.1.7-alpha.2(共 79 处),未检出 4.1.6 残留
workspace:* 依赖普遍存在;合并前确认 packages/taro-runtime-rn/package.json 的 publishConfig/private/dist-tag 设置,避免意外将 pre-release 发布为稳定版。packages/postcss-html-transform/package.json (1)
3-3
: 仅版本号提升至 4.1.7-alpha.2变更纯元数据,无功能面风险。确认随本次预发布一并发包即可。
packages/taro-framework-solid/package.json (1)
3-3
: 版本号同步到 4.1.7-alpha.2与 monorepo 版本对齐,LGTM。请确保对应 tag/CHANGELOG 也包含此包。
packages/taro-api/package.json (1)
3-3
: 版本提升确认API 包版本提升为 4.1.7-alpha.2,没有脚本或对外字段变更。注意 alpha 版本不会被下游的 ^4.1.6 自动解析,需要明确告知使用者或标注为预发布。
packages/taro-cli-convertor/package.json (1)
3-3
: CLI Convertor 版本提升到 4.1.7-alpha.2纯元数据修改。发布前请确认可执行入口与 bin 字段无回归。
packages/taro-plugin-inject/package.json (1)
3-3
: 插件版本号更新无行为改动。请确认 peerDependencies 仍使用 workspace:*,与本次预发布兼容。
npm/win32-x64-msvc/package.json (1)
4-4
: 平台二进制包版本同步win32-x64-msvc 版本号同步为 4.1.7-alpha.2。确认 CI 工件与对应 .node 文件名未变化。
packages/postcss-plugin-constparse/package.json (1)
3-3
: 版本提升到 4.1.7-alpha.2仅版本更新。与 postcss ^8 的 peer 约束保持不变,LGTM。
packages/taro-helper/package.json (1)
3-3
: 版本号提升到 4.1.7-alpha.2 — 一致性检查通过,批准合并核心包(@tarojs/* 与根 package.json)已统一为 4.1.7-alpha.2;仓库中未检出残留 4.1.6,也未发现 packages/**/package.json 对 @tarojs/* 的非 workspace:* 引用。
packages/taro-platform-qq/package.json (1)
3-3
: 版本号同步无问题。该包依赖与 peer 依赖均为 workspace:*,无需额外同步版本字段。
packages/taro-router/package.json (1)
3-3
: 版本号更新 LGTM。请同时确认
@tarojs/router-rn
已同步到相同预发版本,避免路由相关包版本漂移。packages/taro-rn-transformer/package.json (1)
3-3
: 版本号更新正确。无运行时与 API 变更,符合元数据更新预期。
packages/taro-components-rn/package.json (1)
3-3
: 版本号提升通过。请在 RN 生态下做一次最小构建验证(例如 Expo/React Native 0.73 项目)以确保预发版本标记不影响消费者安装解析。
packages/babel-plugin-transform-solid-jsx/package.json (1)
4-4
: 版本号更新 OK。作为 Babel 插件,建议在 CI 中附带一次最小用例编译回归,确保预发版本未改变产物哈希。
packages/stylelint-config-taro-rn/package.json (1)
3-3
: 版本号同步无误。请确认
peerDependencies.stylelint
与仓库实际使用版本一致,避免安装时的 peer 警告。packages/taro-plugin-html/package.json (1)
3-3
: 版本号更新通过。该插件仅 dev/peer 指向 workspace 依赖,无需额外变更;等待主包发布后再合并发布即可。
packages/taroize/package.json (1)
3-3
: 确认所有 package.json 已统一为 4.1.7-alpha.2 并同步发版元数据沙箱未找到 package.json(NO_PACKAGE_JSON_FOUND),无法自动验证 4.1.6 残留。请在本地仓库运行以下检查命令:
rg -nP '"version"\s*:\s*"4.1.6"'
rg -nP '"@tarojs/[^"]+"\s*:\s*"4.1.6"'如发现残留,统一更新为 4.1.7-alpha.2;发布 alpha 时使用 npm publish --tag alpha 并同步更新 CHANGELOG。
packages/taro-platform-jd/package.json (1)
3-3
: 版本号提升至 4.1.7-alpha.2,变更安全可合。packages/taro-framework-react/package.json (1)
3-3
: 版本号同步至 4.1.7-alpha.2,OK。注意本包 peerDependencies 对 vite/webpack 的范围约束未变,更换预发版本不影响对等依赖声明。
packages/taro-plugin-http/package.json (1)
3-3
: 版本号更新到 4.1.7-alpha.2,无功能改动,LGTM。packages/taro-platform-harmony-cpp/package.json (1)
3-3
: 版本号更新到 4.1.7-alpha.2,元数据变更通过。该包指向 gitee 仓库为既有设定,无需调整。
packages/taro-components/package.json (1)
3-3
: 版本号更新到 4.1.7-alpha.2,OK。无伴随依赖变更;Stencil/Node 要求保持不变,风险低。
packages/taro-platform-tt/package.json (1)
3-3
: 版本号提升至 4.1.7-alpha.2,变更单一可合。packages/taro-platform-ascf/package.json (1)
3-3
: 版本号同步到 4.1.7-alpha.2,变更纯元数据,LGTM。
- 仓库检查摘要:主包(packages/、npm/、@tarojs/)已同步为 4.1.7-alpha.2;异常项:tests/package.json 为 4.0.0-alpha.4;examples/ 下示例包为 1.0.0(示例/fixture);packages/taro-cli/templates/global-config/package.json 与 packages/taro-cli/src/tests/fixtures/default/package.json 缺少 version 字段。确认是否需要将这些项也统一。
- Harmony 资源后缀修复(fileToUrl 是否保留扩展名)未能在本次自动检查中确认——需在 packages/taro-vite-runner/src/harmony/asset.ts 中核验 fileToUrl 实现或允许重新运行针对该文件的检查。
packages/taro-plugin-generator/package.json (1)
3-3
: 版本号提升至 4.1.7-alpha.2 —— LGTM纯元数据更新,无行为变化。
packages/taro-transformer-wx/package.json (1)
3-3
: 版本号同步 —— LGTM与仓库其他包对齐到 4.1.7-alpha.2。
packages/taro-plugin-mini-ci/package.json (1)
3-3
: 版本号同步 —— LGTM仅版本号变更。请确认预发布流程会以合适的 npm dist-tag(如
alpha
)发布。packages/postcss-pxtransform/package.json (1)
3-3
: 版本号同步 —— LGTM无 API/依赖改动风险点。
packages/babel-preset-taro/package.json (1)
3-3
: 版本号同步 —— LGTM请顺带确认 peerDependencies 与 devDependencies 的版本约束仍与本次预发布兼容。
packages/taro/package.json (1)
3-3
: 版本号同步 —— LGTM核心包已对齐预发布版本;请确认根 package.json 与变更日志也已更新。
packages/postcss-unit-transform/package.json (1)
3-3
: 版本号同步 —— LGTM纯元数据更新。
packages/taro-cli/package.json (1)
3-3
: 版本号同步 —— LGTM;修复验证脚本并一次性校验全仓一致性执行输出出现 awk 转义错误 ($2!=V),校验未完成。
在仓内运行下列修订脚本并把输出贴回:#!/bin/bash set -euo pipefail V="4.1.7-alpha.2" fd -H package.json -E node_modules -E dist -E build -t f | sort -u | while IFS= read -r f; do name=$(jq -r '.name // "<no-name>"' "$f" 2>/dev/null || echo "<jq-error>") ver=$(jq -r '.version // ""' "$f" 2>/dev/null || echo "") if [ "$ver" != "$V" ]; then printf 'MISMATCH\t%s\t%s\t%s\n' "$f" "$name" "$ver" fi done echo "—— 若无 MISMATCH 行,则版本已对齐为 $V" echo "发布时使用 npm dist-tag=alpha(或自定义预发布 tag),避免覆盖 latest。"若无 MISMATCH 行则确认版本一致;否则根据输出逐一修正对应 package.json。
packages/babel-plugin-transform-taroapi/package.json (1)
3-3
: 版本号同步到 4.1.7-alpha.2,LGTM。建议在合并前跑一遍 vitest 以确保无快照回归(scripts 已配置)。
packages/taro-components-library-vue3/package.json (1)
3-3
: 版本号更新正确,LGTM。保持 workspace:* 依赖不变是合理的;无需额外动作。
packages/taro-extend/package.json (1)
3-3
: 仅版本号提升到 4.1.7-alpha.2,LGTM。无脚本/依赖变化,风险极低。
packages/jest-helper/package.json (1)
3-3
: 版本号 bump,LGTM。建议在 CI 跑一次 Jest 相关任务,确认 29.x 依赖未因版本同步产生锁定差异。
npm/linux-x64-gnu/package.json (1)
4-4
: 版本号更新到 4.1.7-alpha.2,LGTM。请同步确认 glibc 变体的 .node 产物已构建并上传。
packages/taro-platform-alipay/package.json (1)
3-3
: 版本号同步,LGTM。无运行时变更;与 @tarojs/service/@tarojs/shared 的 workspace peer 关系保持不变,兼容性 ok。
packages/eslint-config-taro/package.json (1)
3-3
: 版本号提升到 4.1.7-alpha.2,LGTM。作为配置包,无需额外验证;保持依赖范围不变合理。
npm/linux-x64-musl/package.json (1)
3-3
: 版本号提升到 4.1.7-alpha.2 — 元数据变更,LGTM;发布前需验证变更仅为元数据,LGTM。发布前确认:
- 本架构的 .node 二进制与 Node‑API/ABI 兼容(Node ≥ 18)。
- npm/linux-x64-musl/package.json 中 files/main 指向的 taro.linux-x64-musl.node 在发布产物中存在(路径示例:npm/linux-x64-musl/taro.linux-x64-musl.node)。
- monorepo 内所有 package.json 的 version 与根 package.json 保持一致。
在仓库根目录运行以下脚本进行校验(需安装 jq):
#!/usr/bin/env bash set -euo pipefail command -v jq >/dev/null 2>&1 || { echo "ERROR: jq not found" >&2; exit 1; } root_ver=$(jq -r 'try .version // empty' package.json 2>/dev/null || true) echo "root version: ${root_ver:-<missing>}" # 查找所有 package.json 并比较版本 find . -type f -name 'package.json' -print0 | while IFS= read -r -d '' f; do if [ "$f" = "./package.json" ] || [ "$f" = "package.json" ]; then continue fi ver=$(jq -r 'try .version // empty' "$f" 2>/dev/null || true) if [ -n "$ver" ] && [ "$ver" != "null" ] && [ -n "$root_ver" ] && [ "$ver" != "$root_ver" ]; then echo "Version mismatch: $f -> $ver" fi done # 检查 npm/linux-x64-musl 包的 main/files/engines.node pkg="npm/linux-x64-musl/package.json" if [ -f "$pkg" ]; then echo "Found $pkg" main=$(jq -r 'try .main // empty' "$pkg" 2>/dev/null || true) echo " main: ${main:-<missing>}" if [ -n "$main" ]; then if [ -f "npm/linux-x64-musl/$main" ]; then echo " Binary present: npm/linux-x64-musl/$main" else echo " Binary missing: npm/linux-x64-musl/$main" fi fi files_vals=$(jq -r 'try (.files // []) | join(",")' "$pkg" 2>/dev/null || true) echo " files: ${files_vals:-<missing>}" eng_node=$(jq -r 'try .engines.node // empty' "$pkg" 2>/dev/null || true) echo " engines.node: ${eng_node:-<missing>}" else echo "$pkg not found" fipackages/taro-plugin-vue-devtools/package.json (1)
3-3
: 版本号对齐 OK仅元数据升级,无行为改变风险。
packages/taro-components-react/package.json (1)
3-3
: 版本提升 LGTM仅版本号更新,其他字段未变更,安全。
packages/stylelint-taro-rn/package.json (1)
3-3
: 版本号小步升级通过仅元数据更新;与 stylelint 的 peer 约束保持不变,风险低。
packages/taro-platform-harmony/package.json (1)
3-3
: Harmony 插件版本对齐 OK — 请确认 taro-vite-runner 是否已随 4.1.7-alpha.2 发布packages/taro-vite-runner/src/harmony/asset.ts 已包含修复(匹配行:183、242、291);但 packages/taro-vite-runner/package.json 中未找到 "version": "4.1.7-alpha.2"。请同步 package.json 并发布或确认已发布。
crates/native_binding/package.json (1)
3-3
: binding 包版本提升 OK — 可选二进制依赖已设为workspace:*
crates/native_binding/package.json 行56–59 显示四个可选二进制包均为
workspace:*
(darwin-arm64、darwin-x64、linux-x64-gnu、win32-x64-msvc),与主 binding 由 workspace 管理,暂不需调整。packages/taro-components-library-react/package.json (1)
3-3
: 批准:版本号同步无异议 — 需确认发布顺序与引用纯版本元数据更新;发布顺序须先发布组件库包,再发布依赖它的插件包,避免 peer 解析到旧版本。仓库搜索未返回对 "@tarojs/components-library-react" 的引用(运行的脚本无输出),无法自动确认依赖链;需手动验证或在仓库根目录重跑更广泛的搜索,例如:
rg -n "@tarojs/components-library-react" -S rg -nP '"@tarojs/components-library-react"\s*:\s*' -S rg -nP "from\s+['\"]@tarojs/components-library-react['\"]|require\(['\"]@tarojs/components-library-react['\"]\)" -Spackages/taro-components-library-solid/package.json (1)
3-3
: 版本号提升一致性确认 — 需手动核对(权限受限)自动检查时对 ./crates/native_binding/package.json 报 Permission denied,无法确认仓库中是否仍存在 "4.1.6"。请在仓库根目录运行并确认没有残留的 4.1.6,或先修复该文件权限后重试:
rg -n --hidden --no-ignore -S --glob '!/node_modules/' -e '"version":\s*"4.1.6"' || true
packages/taro-rn-style-transformer/package.json (1)
3-3
: 版本对齐至 4.1.7-alpha.2 — 通过与 monorepo 其他 RN 相关包保持同步即可;无需额外动作。
packages/babel-plugin-transform-react-jsx-to-rn-stylesheet/package.json (1)
3-3
: 版本号 bump — 通过纯元数据更新;与 workspace 版本对齐即可。
npm/darwin-x64/package.json (1)
4-4
: Native binding 版本对齐 — 请同步验证构建产物版本号已更新;请确保对应 .node 产物已使用相同版本号重新构建并在各平台分包同时发布,避免可下载工件与版本不匹配。
npm/darwin-arm64/package.json (1)
4-4
: Native binding 版本对齐 — 请联动发布与 x64 包保持同版本发布节奏;确认 CI 中的二进制签名/上传步骤已覆盖该版本。
packages/taro-platform-h5/package.json (1)
3-3
: 版本号 bump — 通过提醒:H5 的 definition.json 由 post-build 脚本生成,请勿手改;此次 bump 不应引入该文件的手工改动。
packages/taro-framework-vue3/package.json (1)
3-3
: 版本号提升至 4.1.7-alpha.2 — 沙箱验证失败,需在本地核验仅元数据变更;沙箱执行校验脚本因 /dev/fd/process-substitution 限制失败,无法确认仓内是否存在残留旧版本或 Harmony 资源 URL 问题。
- 确认全仓版本一致、TAG 与发布流水线已覆盖该 pre-release。
- 在仓库根目录本地运行下列检查并把输出贴回:
#!/usr/bin/env bash set -euo pipefail target='4.1.7-alpha.2' echo "1) 查找 package.json 中非 $target 的版本:" find . -type f -name 'package.json' -not -path './node_modules/*' -not -path './dist/*' -not -path './build/*' -print0 | while IFS= read -r -d '' f; do v=$(jq -r '.version // empty' "$f" 2>/dev/null || python3 -c "import json,sys;print(json.load(open(sys.argv[1])).get('version',''))" "$f") if [ -z "$v" ]; then echo "$f: 无法解析 version" elif [ "$v" != "$target" ]; then echo "$f: $v" fi done echo echo "2) 粗检 Harmony 资源 URL 是否包含扩展名(若无命中,请检查 packages/taro-vite-runner/src/harmony/asset.ts):" rg -nP -C2 'resource://base/media/.+\.\w+' -g '!**/node_modules/**' || echo '未命中:请人工检查 packages/taro-vite-runner/src/harmony/asset.ts'packages/taro-webpack5-runner/package.json (1)
3-3
: 版本号提升到 4.1.7-alpha.2,变更纯元数据,LGTM。packages/eslint-plugin-taro/package.json (1)
3-3
: 版本号对齐到 4.1.7-alpha.2,LGTM。packages/create-app/package.json (1)
3-3
: 版本号对齐到 4.1.7-alpha.2,LGTM。packages/taro-rn-supporter/package.json (1)
3-3
: 版本号对齐到 4.1.7-alpha.2,LGTM。packages/css-to-react-native/package.json (1)
4-4
: 版本号对齐到 4.1.7-alpha.2,LGTM。packages/taro-router-rn/package.json (1)
3-3
: 版本号对齐到 4.1.7-alpha.2,LGTM。packages/taro-vite-runner/package.json (1)
3-3
: 确认是否将所有 package.json 的 version 对齐为 4.1.7-alpha.2自动校验发现下列 package.json 的 version 与目标 4.1.7-alpha.2 不一致:
- ./examples/blended-apart/taro-project/package.json => 1.0.0
- ./examples/blended-basic/taro-project/package.json => 1.0.0
- ./examples/blended-taro-component-vue3/h5/package.json => 1.0.0
- ./examples/blended-taro-component-vue3/taro-project/package.json => 1.0.0
- ./examples/blended-taro-component/h5/package.json => 1.0.0
- ./examples/blended-taro-component/taro-project/package.json => 1.0.0
- ./examples/build-weapp-plugin/package.json => 1.0.0
- ./examples/custom-tabbar-react/package.json => 1.0.0
- ./examples/custom-tabbar-vue3/package.json => 1.0.0
- ./examples/external-prebundle/package.json => 0.1.0
- ./examples/input-readonly-taro4/package.json => 1.0.0
- ./examples/mini-program-example/package.json => 1.0.0
- ./examples/mini-split-chunks-plugin/package.json => 1.0.0
- ./examples/new-blended/taro-project/package.json => 1.0.0
- ./examples/swiper-effect/package.json => 1.0.0
- ./examples/taro-list/package.json => 1.0.0
- ./examples/weapp-independent-subpackages/package.json => 1.0.0
- ./tests/package.json => 4.0.0-alpha.4
针对 "4.1.6" 的搜索未返回可用结果(rg 报告未搜索任何文件)。若示例/测试包应保持独立版本则无需修改;否则将上述文件的 version 更新为 4.1.7-alpha.2 并重新运行校验。
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #18377 +/- ##
=======================================
Coverage 55.05% 55.05%
=======================================
Files 416 416
Lines 21560 21560
Branches 5259 5281 +22
=======================================
Hits 11870 11870
- Misses 8035 8036 +1
+ Partials 1655 1654 -1
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
这个 PR 做了什么? (简要描述所做更改)
这个 PR 是什么类型? (至少选择一个)
这个 PR 涉及以下平台:
Summary by CodeRabbit