这是我学习RN以来遇到的最恶心的问题,没有之一。先上图
我把上面的报错给整理下来了
Error: Unable to resolve module `./index` from `E:\ReactWord\WorkDemo\node_modules\react-native\scripts/.`: The module `./index` could not be found from `E:\ReactWord\WorkDemo\node_modules\react-native\scripts/.`. Indeed, none of these files exist:
* `E:\ReactWord\WorkDemo\node_modules\react-native\scripts\index(.native||.android.js|.native.js|.js|.android.json|.native.json|.json|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx)`
* `E:\ReactWord\WorkDemo\node_modules\react-native\scripts\index\index(.native||.android.js|.native.js|.js|.android.json|.native.json|.json|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx)`
at ModuleResolver.resolveDependency (E:\ReactWord\WorkDemo\node_modules\metro\src\node-haste\DependencyGraph\ModuleResolution.js:163:15)
at ResolutionRequest.resolveDependency (E:\ReactWord\WorkDemo\node_modules\metro\src\node-haste\DependencyGraph\ResolutionRequest.js:52:18)
at DependencyGraph.resolveDependency (E:\ReactWord\WorkDemo\node_modules\metro\src\node-haste\DependencyGraph.js:283:16)
at E:\ReactWord\WorkDemo\node_modules\metro\src\lib\transformHelpers.js:261:42
at Server.<anonymous> (E:\ReactWord\WorkDemo\node_modules\metro\src\Server.js:1038:41)
at Generator.next (<anonymous>)
at asyncGeneratorStep (E:\ReactWord\WorkDemo\node_modules\metro\src\Server.js:99:24)
at _next (E:\ReactWord\WorkDemo\node_modules\metro\src\Server.js:119:9)
这个报错的意思是,我的某一个文件找不到。可是,这是我新建的一个项目啊。网上怎么找都解决不了。但是,最终我看到了一篇帖子,https://stackoverflow.com/questions/55149658/error-unable-to-resolve-module-index-from-node-modules-react-native-scrip。
https://github.com/facebook/react-native/issues/23908 这篇是真正解决我问题的一篇帖子, github上的
这篇论坛帖子已经可以解决大问题了。我先修改了node_modules \ react-native \ scripts \ launchPackager.bat文件。
// delete this line 删除这一行
node "%~dp0..\cli.js" start
// Add this line 添加这一行
node "%~dp0..\cli.js" start --projectRoot ../../../
pause
exit
我是将上面哪一行原本的代码删除掉,替换成下面这一行。然后将原来的命令行工具窗口全部关闭,新打开命令行窗口分别执行以下命令
react-native start -- --reset-cache
然后另外开一个新的命令行窗口,执行以下命令
react-native run-android
第一行命令是开启你的node服务,第二行则就是运行你的工程。
还有一种解决方式,不过我没有成功,也许你就可以成功,二选一
在\ node_modules \ @react-native-community \ cli \ build \ commands \ runAndroid \ runAndroid.js中编辑
//这是你原本的代码
const procConfig = {
cwd:process.cwd()
};
然后对你原本的代码进行修改
const procConfig = {
// delete this line 将这一行删除
cwd: scriptsDir
// add this line 添加这一行
cwd: process.cwd()
};
同上,把添加的替换掉要删除的就可以了,然后操作如上,开启命令窗口,运行项目。
我的问题解决了。相信你如果遇到此类问题一定可以解决,不要灰心,功夫不负有心人。