纯 ReactNative-Expo 设置,使用纯 JavaScript

发布: (2025年12月2日 GMT+8 23:32)
2 min read
原文: Dev.to

Source: Dev.to

预设

  • 包管理器: Bun
  • SDK: 54.0.25
  • 语言: JavaScript
  • 命令界面: 集成在终端中的 Bash
  • 操作系统: Windows

本指南中我们将使用 bun 作为包管理器。

从启动模板创建项目

degit https://github.com/Franklivania/expo-js-starter.git 

初始化一个最简的 Expo 项目

bun create expo --template blank 

进入项目目录并在编辑器中打开(示例使用 Cursor):

cd  && cursor .

安装所需依赖

bun install \
  react-native-reanimated \
  react-native-screens \
  lucide-react-native \
  expo-haptics \
  expo-router \
  expo-image \
  expo-linking \
  expo-font \
  expo-constants \
  expo-blur \
  expo-system-ui \
  react-native-web \
  react-native-worklets \
  react-native-safe-area-context \
  @react-native-community/netinfo \
  @react-native-async-storage/async-storage@next \
  @react-navigation/bottom-tabs \
  @react-navigation/elements \
  @react-navigation/native \
  expo-splash-screen \
  react-dom \
  react-native-svg

这些包提供了纯 JavaScript Expo 应用所需的核心功能。

配置

jsconfig.json(可选)

创建或更新 jsconfig.json 以简化导入路径:

{
  "compilerOptions": {
    "paths": {
      "@/*": ["./src/*"],
      "~/*": ["./assets/*"]
    }
  }
}

Babel (babel.config.js)

配置 Babel 使用 Expo 预设和 worklets 插件:

module.exports = function (api) {
  api.cache(true);
  return {
    presets: ["babel-preset-expo"],
    plugins: ["react-native-worklets/plugin"]
  };
};

app.json

app.json 中添加所需插件(Expo Router 和启动屏幕):

{
  "plugins": [
    "expo-router",
    [
      "expo-splash-screen",
      {
        "image": "./assets/images/splash-icon.png",
        "imageWidth": 200,
        "resizeMode": "contain",
        "backgroundColor": "#ffffff",
        "dark": {
          "backgroundColor": "#000000"
        }
      }
    ]
  ]
}

入口点

package.json 中的 main 字段更新为指向 Expo Router 入口:

{
  "main": "expo-router/entry"
}

Expo 会自动定位你的布局文件(例如 /app/_layout.jsx/src/app/_layout.jsx)。

验证依赖兼容性

运行 Expo doctor 检查版本不匹配:

bunx expo-doctor

如果报告问题,使用以下命令修复:

bunx expo install --check

确认所有内容兼容后,你可以安全地删除默认的 index.jsApp.js 文件。

最后说明

就这样!你现在已经搭建好一个不带默认 TypeScript 配置的纯 JavaScript Expo 项目。祝编码愉快! 🍻💻

Back to Blog

相关文章

阅读更多 »