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

React Native中__dirname相关配置报错:无法找到package.json路径

React Native Expo Metro配置报错:__dirname路径问题

问题场景

配置metro.config.js时出现路径错误,报错信息如下:

ConfigError: The expected package.json path: __dirname/package.json does not exist

原配置代码:

const { getDefaultConfig } = require('expo/metro-config');
const DefaultConfig = getDefaultConfig('__dirname');
DefaultConfig.resolver.assetExts.push('cjs');
module.exports = defaultConfig;

错误原因

  1. 代码把Node.js内置的__dirname变量用单引号包裹成了字符串字面量'__dirname',导致Metro会尝试寻找名为__dirname的子目录并读取其中的package.json,而非使用__dirname实际指向的当前模块所在目录的绝对路径。
  2. 原代码存在大小写不一致问题:定义的变量是DefaultConfig,但导出时写成了defaultConfig,会导致配置无法正常生效。

修正方案

  1. 移除__dirname的单引号,直接传入该变量
  2. 修正导出变量的大小写,保持与定义一致

完整修正代码

const { getDefaultConfig } = require('expo/metro-config');
const DefaultConfig = getDefaultConfig(__dirname);
DefaultConfig.resolver.assetExts.push('cjs');
module.exports = DefaultConfig;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 14:32:34