我在这里与React native有一个奇怪的问题。也许它甚至不是RN,而是Metro Bundler。
我刚从字面上创建了一个全新的项目
反应本机的TestProject
之后,我简单地跑了
react-native run-ios --simulator =“ iPhone 7”
通常,当我运行ios时,Metro捆绑程序将在“ / Users / fred / Documents / Development / TestProject”内部查找-我的index.js文件所在的位置。
但是,由于某种原因,并且现在在我创建的每个新项目中,它都将查找以下路径:
并导致此错误:
我也尝试过更改metro.config.js
中的项目根路径
const path = require('path');
module.exports = {
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: false,
},
}),
},
projectRoot: path.resolve(__dirname),
};
但这似乎不起作用。
有人知道为什么会这样吗,也许我该如何解决?
如果我错过了我应该在此处发布的任何内容,请告诉我。
编辑1:
我设法使它以我不太喜欢的方式运行。
一旦运行了
react-native run-ios
,并且控制台出现了错误的node_modules/react-native
JS Metro Bundler控制台,我就关闭该控制台,并保持模拟器打开。然后,我运行此命令
react-native start --reset-cache
,并运行“ Command + R”模拟器-这将导致执行正确的路径。请看以下屏幕截图:然后关闭Metro bundler控制台,并运行
react-native start --reset-cache
:在这里我们可以看到捆绑程序现在查找正确的根路径:
然后我只是
Command + R
模拟器:现在,尽管我现在可以继续工作-我的意思是,为什么现在会发生这种情况?我一直只使用旧的
react-native run-ios
,一切都很好。用这种方式做事是很麻烦且不必要的。任何帮助将不胜感激!
编辑2:
我现在在这里-在哪里更改引起问题的根字符串:
node_modules/@react-native-community/cli/build/cliEntry.js
在
setupAndRun()
函数的内部。const root = options.projectRoot吗? _path()。default.resolve(options.projectRoot):process.cwd();
也许有人知道为什么这条线会引起问题吗?
最佳答案
所以-一个月后,我意识到了-我was doing this within the Visual Studio Code Terminal
。我只是切换到不在VS Code中的主终端,并且BOOM
可以按预期工作。 Tried it within VS Code, and it failed!
找到了罪魁祸首!与本机或Metro Bundle无关!该死的VS Code!仍然爱你!