Hacktoberfest 2026:維護者為十月標記出來的 issue,仍然開放、適合新手。 瀏覽 Hacktoberfest issue

Unpin @expo/plist and update it (post-merge follow-up to pnpm migration)

未關閉
#383 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

評估

難度
3/5
預估耗時
1-2 天
新手友好度
65/100
Issue 類型
重構
描述清晰度
描述清楚
活躍度
冷清
技術堆疊
typescript

研究方向

先閱讀 packages/host/package.json 和 packages/host/src/node/cli/apple.test.ts,然後檢查 readInfoPlist/readAndParsePlist 路徑和現有斷言。更新相依性範圍,讓測試能穩健地處理解析器的 null 原型,並執行相關測試;使用未固定的版本時 macOS Unit tests 工作通過即表示完成。

由索引模型根據 Issue 內容生成。

描述

Context

As part of the pnpm migration (#381), regenerating the lockfile floated @expo/plist from 0.4.7 (the version main's package-lock.json happened to hold) up to 0.4.9. In 0.4.9, plist.parse() returns a null-prototype object, which makes the strict assert.deepEqual in packages/host/src/node/cli/apple.test.ts ("should read Info.plist contents, plus extra keys not in schema") fail on the prototype mismatch.

To keep the migration behaviour-neutral, @expo/plist was pinned to an exact 0.4.7 in packages/host/package.json:

-    "@expo/plist": "^0.4.7",
+    "@expo/plist": "0.4.7",

The null prototype only affects the test's strict equality — runtime property access on the parsed object is unaffected — so this is a test-only concern, not a functional regression.

Follow-up

Once the pnpm migration is merged, revisit this pin:

  • Update @expo/plist to the latest 0.4.x (or newer) and restore a caret range (^) in packages/host/package.json.
  • Make readInfoPlist / apple.test.ts robust to the null-prototype return so the test no longer depends on the parser's object prototype. Options:
    • normalise the parsed value before asserting (e.g. { ...contents } or structuredClone), or
    • have readAndParsePlist return a plain object, or
    • use a non-strict deep-equal for this assertion.
  • Confirm the macOS Unit tests job passes with the unpinned version.

References

  • PR: #381
  • File: packages/host/package.json (@expo/plist pin)
  • Test: packages/host/src/node/cli/apple.test.ts
主要語言
TypeScript
星號
188
分支
10
平均合併
2 天 17 小時
30 天內合併 PR
3

貢獻指南

這個儲存庫沒有索引到貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

callstackincubator/react-native-node-api 的其他 Issue

查看 callstackincubator/react-native-node-api 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。