已关闭
fix: 将社区版本配置为 peerDependencies 解决 TS 类型检查报错。 #65
fix: 将社区版本配置为 peerDependencies 解决 TS 类型检查报错。 #65
已关闭
zhoukc42创建于 9月3日关闭于 9月8日
共 1 个文件变更+2-1
@@ -46,7 +46,8 @@
46 },46 },
47 "peerDependencies": {47 "peerDependencies": {
48 "react": "*",48 "react": "*",
49- "react-native": "*"49+ "react-native": "*",
50+ "react-native-linear-gradient": "3.0.0-alpha.1"
cpf-manager
cpf-managercpf-manager9月3日

【AI-Review】【严重】【基础代码问题】【代码逻辑错误】peerDependency 版本约束过严导致 npm 7+ 安装失败

● 问题:package.json:50 将 peerDependencies 中的 react-native-linear-gradient 指定为 "3.0.0-alpha.1"(精确版本号,在 npm semver 中等同于 =3.0.0-alpha.1,只接受这一个版本)。经查询 npm registry(https://registry.npmjs.org/react-native-linear-gradient),上游 react-native-linear-gradient 已发布多个 3.x 预发布版本(3.0.0-alpha.0、3.0.0-alpha.1、3.0.0-beta.0、3.0.0-beta.1、3.0.0-beta.2),dist-tags 中 latest 指向稳定版 2.8.3、next 指向 3.0.0-beta.2。本包自身 harmony.alias 为 react-native-linear-gradient(package.json:9),要求用户同时安装上游原版以提供 JS 层接口与 TS 类型定义。

● 影响:严重。用户在 RN 项目中执行 npm install @react-native-ohos/react-native-linear-gradient 时,npm 7+(2020 年 10 月起默认行为)开启严格 peer 依赖检查:若用户已安装或 npm 自动解析到的上游版本不是精确的 3.0.0-alpha.1(例如安装了稳定版 2.8.3、next 版 3.0.0-beta.2、或其他 3.x 预发布版本),npm 将抛出 ERESOLVE unable to resolve dependency tree 错误并使整个安装失败。这与本 PR 标题"解决 peerDependencies 报错"的目标相反,反而把报错扩大到绝大多数安装场景(仅安装精确 alpha.1 的用户能成功)。

● 建议:使用 semver 范围约束替代精确版本号,使 3.x 系列任意预发布版本均可通过 peer 检查。将 "react-native-linear-gradient": "3.0.0-alpha.1" 改为 "react-native-linear-gradient": "^3.0.0-alpha.1"(接受 3.0.0-alpha.1 及以上 3.x 版本)或 "react-native-linear-gradient": ">=3.0.0-alpha.1"。若实际仅验证过 alpha.1 兼容性,可在 README 中明确声明兼容性矩阵,但 peerDependencies 仍应使用范围约束以避免安装失败。

likedislike
zhoukc42
zhoukc42
9月5日 评论:
50 },51 },
51 "publishConfig": {52 "publishConfig": {
52 "registry": "https://registry.npmjs.org/",53 "registry": "https://registry.npmjs.org/",