# @callstack/react-native-asset 中文文档

规范地址：https://npmcn.com/package/%40callstack/react-native-asset/

版本：3\.1\.0
npm 元数据更新时间：2026-11-06T13:30:25.532Z
中文译文更新时间：2026-11-09T00:07:21.141Z
软件包许可：ISC

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40callstack/react-native-asset
原文对照：https://npmcn.com/package/%40callstack/react-native-asset/?lang=original
项目主页：https://github.com/callstack/react-native-asset#readme
源码仓库：https://github.com/callstack/react-native-asset

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：46.8 kB，27 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：10 个
- peer 依赖：react-native \>=0\.60\.0
- 首次发布：2023-11-22T14:35:39.663Z
- 最新版本发布：2024-03-12T08:47:09.888Z
- 近 30 天下载量：24426（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：2（近 12 个月 0 个）

## 中文简介

将您反应本地应用程序中的资产链接和解链接, 用于字体和声音

## 安装

```sh
npm install @callstack/react-native-asset
```

也可以使用：`pnpm add @callstack/react-native-asset`、`yarn add @callstack/react-native-asset`、`bun add @callstack/react-native-asset`

## README

# 反应-内生资产

## 将资产与您的反应- 内在项目连接并解锁!

## 优点

-   `react-native link` 只支持字体文件,此工具支持所有资产 .
-   删除资产时自动解链接,与 `react-native link`,您需要手动解锁文件.
-   适当的链接(和不链接) `mp3` (用于: [`react-native-sound`](https://github.com/zmxv/react-native-sound#basic-usage)和 `ttf` 文档.

## 使用量

-   安装
    
    ```bash
    npm install -g @callstack/react-native-asset
    # or yarn
    yarn global add @callstack/react-native-asset
    ```
    
-   将资产添加到您的 `react-native.config.js` 随你便 `react-native link`
    
    ```js
    ...
     assets: [
        "./src/font",
        "./src/mp3",
      ];
    ```
    
-   在您的平台中添加特定资产 `react-native.config.js` 像这样:
    
    ```js
    ...
    assets: [
      "./src/mp3",
    ],
    iosAssets: [
      "./src/font/ios",
    ],
    androidAssets: [
      "./src/font/android",
    ],
    ```
    
-   运行命令并链接 + 无链接是自动的!
    
    ```bash
    react-native-asset
    ```
    

## 解释

与 `react-native link` 您必须手动解开文件链接, 这很辛苦.  
相反,这个库写 `link-assets-manifest.json` 转到根 `android` 财务报告和审定财务报表 `ios` 用于跟踪它所添加的文件的文件夹, 用于以后在您丢失时将其删除 `assets`来啊!

## 参数

-   `-p, --path` ——工程路径,默认为cwd.
-   `-a, --assets` - 例如资产路径 `react-native-asset -a ./src/font ./src/mp3`。 。 。 .
-   `-ios-a, --ios-assets` - ios资产路径,将禁用和机器人连接.
-   `-android-a, --android-assets` - android资产路径,将禁用ios连接.
-   `-n-u, --no-unlink` - 不会解开已经不存在的资产, 不推荐.

## 字体资产链接和使用

### 机器人

字体资产通过使用 [XML 资源](https://developer.android.com/develop/ui/views/text-and-emoji/fonts-in-xml)。例如,如果添加 **拉图** 字体到您的工程,它将生成 `lato.xml` 文件输入 `android/app/src/main/res/font/` 包含您添加的所有字体变体的文件夹。 它还会增加一个方法调用 `MainApplication.kt` 或者说 `MainApplication.java` 用于注册应用程序初始化期间的自定义字体。 它会看起来像这样:

```kotlin
// other imports

import com.facebook.react.common.assets.ReactFontManager // <- imports ReactFontManager.

class MainApplication : Application(), ReactApplication {

  // other methods

  override fun onCreate() {
    super.onCreate()
    ReactFontManager.getInstance().addCustomFont(this, "Lato", R.font.lato) // <- registers the custom font.
    // ...
  }
}
```

在这种情况下, `Lato` 这是你必须设置在 `fontFamily` 您的样式 `Text` 组件。 要选择字体变体, 如重量和样式, 使用 `fontWeight` 财务报告和审定财务报表 `fontStyle` 样式.

```jsx
<Text style={{ fontFamily: 'Lato', fontWeight: '700', fontStyle: 'italic' }}>Lato Bold Italic</Text>
```

### iOS系统

字体资产通过编辑链接到 iOS `project.pbxproj` 财务报告和审定财务报表 `Info.plist` 文档。 要使用应用程序中的字体,您可以组合 `fontFamily`, (中文(简体) ), `fontWeight` 财务报告和审定财务报表 `fontStyle` 风格和Android一样 萬一你沒有把你的Android的字型資格連接到一起,而你又不确定需要设置到哪一个值 `fontFamily` 样式,可以使用 `Font Book` 在您的 Mac 中应用以查找正确的值 `Family Name` 属性.

## 从 2.x 移动

如果您已经在您的 Android 项目中链接了字体资产, 当运行此工具时, 它会重新链接您的字体, 以使用 XML 资源 . **此迁移将允许您在代码中使用您的字体, 与您在 iOS 中使用的字体相同**。请更新您的代码以使用 `fontFamily`, (中文(简体) ), `fontWeight` 财务报告和审定财务报表 `fontStyle` 样式正确.

## 向后兼容性

-   使用1.1.4版本

## 常见问题

### @callstack/react-native-asset 是什么？

将您反应本地应用程序中的资产链接和解链接, 用于字体和声音

### 如何安装 @callstack/react-native-asset？

在项目目录运行 npm install @callstack/react-native-asset，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react-native（\>=0\.60\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。它还提供命令行工具 react-native-asset，可以用 npx react-native-asset 直接运行。

### @callstack/react-native-asset 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/callstack\_\_react-native-asset 是否存在。

### @callstack/react-native-asset 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @callstack/react-native-asset 可以商用吗？

@callstack/react-native-asset 使用 ISC 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @callstack/react-native-asset 的下载量有多少？

根据 npm 官方下载统计，@callstack/react-native-asset 在 2026/10/09 – 2026/11/07 这 30 天内被下载 24,426 次，日均约 814 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @callstack/react-native-asset 还在维护吗？

最新版本 3\.1\.0 发布于 2024/03/12（2 年前）；至今共发布 2 个版本，其中过去 12 个月发布了 0 个；首次发布于 2023/11/22。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

