error The resource`D:\RN\HarmonyRnShop\bundles\basic.jswas not found. Error: The resource `D:\RN\HarmonyRnShop\bundles\basic.js was not found.
at D:\RN\HarmonyRnShop\node_modules\@react-native-oh\react-native-harmony-cli\node_modules\metro\src\Incrementa1Bund1er.js:255:24
at gotStat(node:fs:2941:21)
at callback (D:\RN\HarmonyRnShop\node_modules\gracefu1-fs\po1yfi11s.js:306:20) at FSReqCa11back.oncomplete (node:fs:197:21)

在React Native项目中遇到“The resource `D:\RN\HarmonyRnShop\bundles\basic.js was not found.”这类错误通常意味着在尝试加载一个JavaScript文件时,系统无法在其指定的路径找到该文件。解决这个问题通常可以通过以下几个步骤:

  1. 检查文件路径:
    确认basic.js文件确实存在于你的项目路径D:\RN\HarmonyRnShop\bundles\下。你可以使用文件资源管理器查看该目录,或者使用命令行工具(如cmd或PowerShell)运行以下命令:

    dir D:\RN\HarmonyRnShop\bundles\basic.js
    

    如果该命令返回文件不存在,那么你需要创建这个文件或者更正引用路径。

  2. 检查引用方式:
    如果你在使用React Native的require函数或者import语句来引用这个文件,确保路径是正确的。例如,如果你在代码中使用了:

    import Basic from './basic.js';
    

    确保basic.js文件位于当前文件的同一目录下,或者正确指定相对路径或绝对路径。

  3. 检查Webpack或Metro配置:
    如果你在使用Webpack或Metro Bundler,确保配置文件中没有错误地排除了这个文件。对于React Native项目,通常使用Metro Bundler,你需要检查metro.config.js文件,确保没有错误地配置了对该文件的处理。例如,确保没有在blacklistRE或类似配置中排除了这个文件。

  4. 清理和重建:
    有时候,简单的清理和重建项目可以解决这类问题。你可以尝试清理缓存并重新启动开发服务器:

    • 清理缓存(如果你使用的是React Native CLI):
      npx react-native start --reset-cache
      
    • 重启Metro Bundler:
      npx react-native start --reset-cache
      
    • 重启开发服务器:
      npx react-native run-android
      或者
      npx react-native run-ios
      
  5. 检查环境问题:
    确保你的开发环境设置正确,例如Node.js和npm/yarn的版本是否兼容你的项目需求。有时候,升级或降级某些工具版本可以解决问题。

通过上述步骤,你应该能够定位并解决“资源未找到”的错误。如果问题仍然存在,可能需要更详细地检查项目的配置或寻求社区的帮助。

在这里插入图片描述


这是一个React Native Metro打包器在寻找入口文件时出现的路径解析错误。系统无法在指定位置找到D:\RN\HarmonyRnShop\bundles\basic.js这个文件。

错误原因分析

文件路径配置问题‌:Metro打包器在basic.config.js配置文件中指定的入口文件路径不正确,导致无法加载基础的JavaScript文件。

具体问题表现

从错误堆栈可以看出:

  • 资源查找失败‌:在D:\RN\HarmonyRnShop\bundles\目录下找不到basic.js文件
  • 配置链断裂‌:从IncrementalBundler.js到文件系统的查找过程出现问题
  • 路径解析异常‌:Node.js的文件系统模块在解析路径时遇到障碍

解决方案

立即修复步骤

  1. 检查文件存在性‌
    首先确认D:\RN\HarmonyRnShop\bundles\basic.js文件是否真实存在于你的项目中。

  2. 验证配置文件路径‌
    检查basic.config.js中的入口文件配置是否正确:

// 正确的配置示例
module.exports = {
  entry: './src/bundles/basic/basic.js',
  // 其他配置...
}
  1. 重新生成Bundle文件‌
    在项目根目录执行正确的生成命令:
npm run dev

或者根据你的具体配置:

npm run dev:basic

路径配置验证

根据你的项目结构,正确的路径应该是:

入口文件‌:D:\RN\HarmonyRnShop\src\bundles\basic\basic.js

完整的排查流程

步骤1:项目结构检查

确认你的项目具有正确的目录结构:

HarmonyRnShop/
├── src/
│   └── bundles/
│       └── basic/
│           └── basic.js
├── harmony/
│   └── entry/
│       └── src/
│           └── main/
│               └── resources/
│                   └── rawfile/  # Bundle生成位置
└── package.json

步骤2:配置文件修正

检查并修正basic.config.js文件:

// basic.config.js 正确配置
module.exports = {
  entry: './src/bundles/basic/basic.js',
  bundleOutput: '../harmony/entry/src/main/resources/rawfile/bundle/basic/basic.harmony.bundle',
  // 其他必要配置
}

建议‌:立即检查你的basic.config.js文件中entry配置项指定的路径是否正确,确保src/bundles/basic/basic.js文件确实存在,然后运行npm run dev重新生成Bundle文件。


实际解决方案:

basic.js:

在这里插入图片描述

flight.js:

在这里插入图片描述

接下来通过打包命令npn run harmony将reactNative的代码打包成为bundle,这样可以进行在开源鸿蒙OpenHarmony中进行使用。
在这里插入图片描述
最终实现效果是:

请添加图片描述

欢迎大家加入开源鸿蒙跨平台开发者社区,一起共建开源鸿蒙跨平台生态。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐