将 expo-file-system 从 57.x 升级到 58.x
根据 TypeScript 类型自动比较 expo-file-system 57.0.7 与 58.0.9 的公开 API。签名变化表示可能存在不兼容变更,并非确定结论。
概要
| 已删除的导入路径 | 1 |
|---|---|
| 已删除的导出 | 0 |
| 已修改的签名 | 1 |
| 已删除的类或接口成员 | 0 |
| 已修改的类或接口成员 | 3 |
| 新增弃用 | 2 |
| 要求变化(engines、peer 依赖) | 0 |
| 新增导出 | 4 |
已删除的导入路径
| 已删除的导入路径 |
|---|
expo-file-system/legacy |
已删除的导出
未发现。
已修改的签名
| export | 之前 | 之后 |
|---|---|---|
expo-file-system · DownloadTaskOptions | { headers?: Record<string, string> | undefined; sessionType?: NetworkTaskSessionType | undefined; onProgress?: ((data: DownloadProgress) => void) | undefined; signal?: AbortSignal | undefined; } | { headers?: Record<string, string> | undefined; deferBackgroundSessionCompletion?: boolean | undefined; sessionType?: NetworkTaskSessionType | undefined; onProgress?: ((data: DownloadProgress) => void) | undefined; signal?: AbortSignal | undefined; } |
已删除的类或接口成员
未发现。
已修改的类或接口成员
| member | 之前 | 之后 |
|---|---|---|
File.write | (content: string | Uint8Array<ArrayBufferLike>, options?: FileWriteOptions | undefined): void | (content: string | ArrayBuffer | Uint8Array<ArrayBufferLike>, options?: FileWriteOptions | undefined): Promise<void> |
FileHandle.readBytes | (length: number): Uint8Array<ArrayBuffer> | (length: number): Promise<Uint8Array<ArrayBuffer>> |
FileHandle.writeBytes | (bytes: Uint8Array<ArrayBufferLike>): void | (bytes: Uint8Array<ArrayBufferLike>): Promise<void> |
新增弃用
| export | @deprecated |
|---|---|
expo-file-system · File.md5 | Use `await file.digest('MD5')` instead. |
expo-file-system · InfoOptions | Use `await file.digest('MD5')` to calculate an MD5 digest. |
要求变化(engines、peer 依赖)
未发现。
新增导出 (4)
| import | export | kind |
|---|---|---|
expo-file-system | FilePreviewOptions | type |
expo-file-system | FileDigestAlgorithm | type |
expo-file-system | FileCanPreviewOptions | type |
expo-file-system | FilePreviewCollectionOptions | type |
这些版本之间的 changelog
软件包作者发布的文本,按原样显示。
58.0.9
### Patch Changes
- [Internal] Bump precompiled artifacts due to ABI breakage in expo-modules-jsi, which makes `JavaScriptValue` a non-copyable struct. ([#51368](https://github.com/expo/expo/pull/51368) by [@tsapeta](https://github.com/tsapeta))58.0.8
### Patch Changes
- [iOS] Reject abandoned file preview presentations and allow subsequent previews to open. ([#51169](https://github.com/expo/expo/pull/51169) by [@eliotgevers](https://github.com/eliotgevers))58.0.7
### Patch Changes
- [iOS] Add opt-in control over background download completion with `DownloadTask.acknowledgeBackgroundCompletionAsync()`, so apps can finish processing downloads before returning control to iOS. ([#50543](https://github.com/expo/expo/pull/50543) by [@savv](https://github.com/savv))
- Added static `File.preview()` and `File.canPreview()` methods for a file or array of files, with multi-file previews and initial selection on iOS. ([#50696](https://github.com/expo/expo/pull/50696) by [@eliotgevers](https://github.com/eliotgevers))58.0.6
### Patch Changes
- Bump precompiled artifacts due to ABI breakage in expo-modules-core@58.0.13. ([#51138](https://github.com/expo/expo/pull/51138) by [@alanjhughes](https://github.com/alanjhughes))58.0.5
### Patch Changes
- Bump precompiled artifacts due to ABI breakage in expo-modules-jsi@58.0.6. ([#50881](https://github.com/expo/expo/pull/50881) by [@kitten](https://github.com/kitten))58.0.4
### Patch Changes
- Force-bump all packages, due to migration to changesets. ([#50762](https://github.com/expo/expo/pull/50762) by [@kitten](https://github.com/kitten))58.0.3
### 🐛 Bug fixes
- [Android] Added missing permission checks to upload tasks and to file watchers. ([#50582](https://github.com/expo/expo/pull/50582) by [@barthap](https://github.com/barthap))
- [iOS] Added a missing permission check when opening a file handle. ([#50583](https://github.com/expo/expo/pull/50583) by [@barthap](https://github.com/barthap))
- [Android] Check permissions for `content://` URIs served by the app's own file providers. ([#50584](https://github.com/expo/expo/pull/50584) by [@barthap](https://github.com/barthap))58.0.2
### 🐛 Bug fixes
- [iOS] Include the privacy manifest in prebuilt frameworks. ([#50503](https://github.com/expo/expo/pull/50503) by [@chrfalch](https://github.com/chrfalch))58.0.1
### 🐛 Bug fixes
- [iOS] Anchored the file picker popover on every regular-width display, not only iPad, so it presents correctly on iPhone Duo. ([#50434](https://github.com/expo/expo/pull/50434) by [@alanjhughes](https://github.com/alanjhughes))58.0.0
### 🛠 Breaking changes
- `File.write()` is now asynchronous and returns a Promise. Use `File.writeSync()` for synchronous behavior. ([#45992](https://github.com/expo/expo/pull/45992) by [@wh201906](https://github.com/wh201906))
- `FileHandle.readBytes()` and `FileHandle.writeBytes()` are now asynchronous and return a Promise. Use `FileHandle.readBytesSync()` and `FileHandle.writeBytesSync()` for synchronous behavior. ([#46280](https://github.com/expo/expo/pull/46280) by [@wh201906](https://github.com/wh201906))
### 🎉 New features
- Add `File.preview()` and `File.canPreview()` methods for opening files with platform-native preview flows. (by [@eliotgevers](https://github.com/eliotgevers))
- Added `File.digest()` for asynchronously calculating MD5, SHA-1, SHA-256, SHA-384 and SHA-512 file digests. ([#48089](https://github.com/expo/expo/pull/48089) by [@wh201906](https://github.com/wh201906))
### 🐛 Bug fixes
- Fixed `File.downloadFileAsync()` returning a runtime-specific error message when canceled with an `AbortSignal`. ([#49856](https://github.com/expo/expo/pull/49856) by [@Ubax](https://github.com/Ubax))
- Fix `File.readableStream()` returning zeroed bytes and writing past the requested region when a BYOB read targets a view that starts at a non-zero offset. ([#49234](https://github.com/expo/expo/pull/49234) by [@dennytosp](https://github.com/dennytosp))
- [Android][iOS] Fix `File.size` returning `null` for a missing or unreadable file. ([#49086](https://github.com/expo/expo/pull/49086)) by [@ACHP](https://github.com/ACHP))
- [iOS] Fix wrong permissions for text() and bytes(). ([#42422](https://github.com/expo/expo/pull/42422)) by [@simoneldevig](https://github.com/simoneldevig))
- Fixed `copyAsync` on iOS copying the unedited original when a `ph://` asset has edits applied in Photos. ([#48248](https://github.com/expo/expo/pull/48248) by [@CoffeeFlux](https://github.com/CoffeeFlux))
- Fixed iOS file previews rejecting a new preview while the previous Quick Look dismissal animation is still finishing. ([#47947](https://github.com/expo/expo/pull/47947) by [@eliotgevers](https://github.com/eliotgevers))
- Added `./next` subpath to package `exports` field to resolve Metro bundler warning. ([#44793](https://github.com/expo/expo/pull/44793) by [@chang-in](https://github.com/chang-in))
- Fixed `FileHandle` security-scoped access, and non-SAF `content://` URI support. ([#47176](https://github.com/expo/expo/pull/47176) by [@barthap](https://github.com/barthap))
- Fixed potential file offset races when asynchronous and synchronous `FileHandle` operations overlap on Android and iOS. ([#47945](https://github.com/expo/expo/pull/47945) by [@wh201906](https://github.com/wh201906))
- Fixed `readAsStringAsync` to respect `position` and `length` when reading UTF-8 strings. ([#20291](https://github.com/expo/expo/issues/20291) by [@mvincentong](https://github.com/mvincentong)) ([#45714](https://github.com/expo/expo/pull/45714) by [@mvincentong](https://githu把这些数据交给你的 AI 智能体
Vigia 是免费的 MCP 服务器:你的编程智能体在写代码之前就能检查版本、不兼容变更和安全漏洞。无需注册,无需 API 密钥。
claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp
添加到 Cursor添加到 VS Code★ 在 GitHub 上加星
任何其他 MCP 客户端
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }常见问题
将 expo-file-system 从 57 升级到 58 有哪些不兼容变更?
在 expo-file-system 57.0.7 与 58.0.9 之间,Vigia 发现 0 个已删除的导出、1 个已修改的签名,以及 3 个已删除或修改的类或接口成员。
expo-file-system 58 中弃用了哪些内容?
expo-file-system 58.0.9 中有 2 个导出或成员新被标记为弃用。
供智能体使用
GET https://vigia.coredls.cloud/v1/packages/npm/expo-file-system/upgrade?from=57.0.7&to=58.0.9