СООБЩЕНИЕ ОБ ОШИБКЕ В ВОПРОСЕ:
При попытке резолвить модуль 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. Я очистил кеш пряжи, кеш выставки, удалил node_modules и переустановил, а также очистил кеш сторожа, все безрезультатно. Я также трижды проверил, что каталог файлов на самом деле находится там, где сообщение об ошибке говорит, что это не так.
Ошибка возникла при экспо-установке lottie-react-native, однако она кажется несвязанной, и проблема осталась после удаления lottie-react-native. Я использовал git, чтобы вернуть свой код до начала поведения, и теперь проблема сохраняется и здесь.
Кажется, что весь проект теперь в мусоре, как мне двигаться дальше.





Я получаю ту же ошибку... Я думаю, что в новой версии firebase есть что-то забавное. Я понизил версию Firebase до 9.6.11, чтобы временно устранить проблему...
npm uninstall firebase
npm install [email protected]
Возникла та же проблема даже после добавления firebase в проект чистой выставки. Проблема связана с тем, что .cjs не поддерживается в expo.
я починил это добавив cjs в metro.config.js, как описано здесь: https://github.com/thysultan/stylis/issues/233#issuecomment-1000648356
Последнее, что я пробовал, — это понизить версию Firebase, как предложил @crunchtoast. Я еще не экспериментировал и не нашел, работает ли этот ответ.
Я пытался добавить преобразователь cjs в файл metro.config, но это не помогло мне... было еще что-то с метро, распознающим файлы... Я думаю, в конечном счете, это проблема firebase, поскольку они просто добавил idb в качестве зависимости пару дней назад
Если вы используете expo, для решения этой проблемы создайте файл метро.config.js в корне проекта. В файле добавьте расширение файла cjs. Детали
const { getDefaultConfig } = require("@expo/metro-config");
const defaultConfig = getDefaultConfig(__dirname);
defaultConfig.resolver.assetExts.push("cjs");
module.exports = defaultConfig;
Реагировать на родной кли
const { getDefaultConfig } = require("metro-config");
const { resolver: defaultResolver } = getDefaultConfig.getDefaultValues();
exports.resolver = {
...defaultResolver,
sourceExts: [
...defaultResolver.sourceExts,
"cjs",
],
};
Я только что добавил следующий код в файл 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'],
},
};
понижение версии моей базы данных действительно решает проблему.!