Joh*_*ash 50 indexeddb firebase reactjs react-native expo
有问题的错误消息:
在尝试idb从文件解析模块时,成功找到了C:\Users\OG\Desktop\programming\react_native\mealstogo\MealsToGo2\node_modules\@firebase\app\dist\esm\index.esm2017.js包。C:\Users\OG\Desktop\programming\react_native\mealstogo\MealsToGo2\node_modules\idb\package.json然而,这个包本身指定了一个main无法解析的模块字段(C:\Users\OG\Desktop\programming\react_native\mealstogo\MealsToGo2\node_modules\idb\build\index.cjs。事实上,这些文件都不存在:
该错误的令人困惑的部分是文件index.esm2017实际上确实存在于该目录中。'`C:\Users\OG\Desktop\programming\react_native\mealstogo\MealsToGo2\node_modules\idb\build\index.cjs'
我已经卸载并重新安装了 firebase。我已经安装并卸载了“idb”。我已经清除了yarn缓存、expo缓存、删除了node_modules并重新安装以及清除了watchman缓存,但都无济于事。我还进行了三次检查,确保文件目录实际上不在错误消息所示的位置。
当博览会安装lottie-react-native时出现错误,但似乎无关,并且在删除lottie-react-native后问题仍然存在。我已经使用 git 将代码恢复到行为开始之前,现在问题仍然存在。
看起来整个项目现在都被毁了,我该如何继续前进。
Soh*_*ran 98
如果您使用的是 expo,要解决此问题,请在项目根目录中创建一个Metro.config.js文件。在文件中添加文件扩展名cjs. 细节
const { getDefaultConfig } = require("@expo/metro-config");
const defaultConfig = getDefaultConfig(__dirname);
defaultConfig.resolver.assetExts.push("cjs");
module.exports = defaultConfig;
Run Code Online (Sandbox Code Playgroud)
React Native cli
const { getDefaultConfig } = require("metro-config");
const { resolver: defaultResolver } = getDefaultConfig.getDefaultValues();
exports.resolver = {
...defaultResolver,
sourceExts: [
...defaultResolver.sourceExts,
"cjs",
],
};
Run Code Online (Sandbox Code Playgroud)
小智 35
我遇到了同样的错误...我认为新的 firebase 版本有一些有趣的地方。我将 firebase 版本降级到 9.6.11 以暂时解决该问题...
npm uninstall firebase
npm install firebase@9.6.11
Run Code Online (Sandbox Code Playgroud)
小智 32
我刚刚将以下代码添加到metro.config.js文件中。我使用 Firebase v9.8.1
module.exports = {
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: true,
},
}),
},
//added this
resolver: {
sourceExts: ['jsx', 'js', 'ts', 'tsx', 'cjs'],
},
};
Run Code Online (Sandbox Code Playgroud)
小智 5
我在世博会上尝试了一些方法来解决这个问题,该解决方案对我有用,在根目录中创建metro.config.js文件并添加以下代码;
const { getDefaultConfig } = require("@expo/metro-config");
const defaultConfig = getDefaultConfig(__dirname);
defaultConfig.resolver.assetExts.push("cjs");
module.exports = defaultConfig;
Run Code Online (Sandbox Code Playgroud)
现在重新启动您的博览会应用程序!
| 归档时间: |
|
| 查看次数: |
32820 次 |
| 最近记录: |