You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用npm start启动Expo Router项目时遇TypeError: spawn is not a function错误

解决Expo Router项目npm start报错TypeError: spawn is not a function的问题

问题诊断

你遇到的错误核心原因是Node.js v12.22.9与expo 6.3.2的本地依赖存在兼容性冲突:全局expo-cli start --tunnel能正常运行,说明全局expo环境无问题,但项目本地安装的expo包无法在已停止维护的Node.js v12环境下正确调用spawn方法。Node.js v12已终止官方支持,多数新工具的依赖不再适配该版本。

解决方案

方案1:升级Node.js版本(推荐)

expo 6.3.2需要至少Node.js v14及以上版本才能稳定运行,升级步骤如下:

  • 用nvm安装并切换到LTS版本(比如v18):
    nvm install 18
    nvm use 18
    
  • 清除旧依赖并重新安装:
    rm -rf node_modules package-lock.json
    npm install
    
  • 执行npm start即可正常启动项目。

方案2:修改package.json启动脚本

若暂时无法升级Node.js,直接将项目启动命令替换为可正常运行的全局expo-cli命令:

  1. 打开项目根目录的package.json,找到scripts中的start字段:
    "scripts": {
      "start": "expo start"
    }
    
  2. 修改为:
    "scripts": {
      "start": "expo-cli start --tunnel"
    }
    
  3. 保存后执行npm start,即可沿用之前验证有效的全局命令逻辑。

方案3:降级expo适配旧Node版本(不推荐)

若坚持使用Node.js v12,可尝试降级expo到兼容旧版本的系列:

  • 删除旧依赖文件:
    rm -rf node_modules package-lock.json
    
  • 安装适配Node12的expo版本(比如expo 48.x):
    npm install expo@48.0.20
    
    注意:降级expo可能导致Expo Router部分功能受限,需提前确认版本兼容性。

内容的提问来源于stack exchange,提问作者Otzze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 03:47:05