Async-storage SyntaxError Неожиданный идентификатор при транспиляции с помощью Babel7

После использования @react-native-community/async-storage и его переноса с помощью следующей команды npm в моей среде, ориентированной на реакцию.

"test": "NODE_ENV=test ./node_modules/.bin/mocha --timeout 5000 --require @babel/register \"./src/shared/__tests__/**/*.spec.js\""

Я провел небольшое исследование и не зря. Но я обнаружил, что это случается и с Джестом.

шуточный тест не проходит после установки асинхронного хранилища

это мой babel.config.js

module.exports = {
  env: {
    production: {
    },
    test: {
      presets: [
        '@babel/preset-env'
      ],
    },
  },
};

Я только тестирую не-jsx-код, поэтому @babel/preset-env работает нормально.

node_modules/@react-native-community/async-storage/lib/index.js:5
import AsyncStorage from './AsyncStorage';
       ^^^^^^^^^^^^

SyntaxError: Unexpected identifier
Умерло ли Create-React-App?
Умерло ли Create-React-App?
В этом документальном фильме React.dev мы исследуем, мертв ли Create React App (CRA) и какое будущее ждет этот популярный фреймворк React.
Освоение React Native: Пошаговое руководство для начинающих
Освоение React Native: Пошаговое руководство для начинающих
React Native - это популярный фреймворк с открытым исходным кодом, используемый для разработки мобильных приложений. Он был разработан компанией...
В чем разница между react native и react ?
В чем разница между react native и react ?
React и React Native - два популярных фреймворка для создания пользовательских интерфейсов, но они предназначены для разных платформ. React - это...
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
Хуки React: что это такое и как их использовать
Хуки React: что это такое и как их использовать
Хуки React - это мощная функция библиотеки React, которая позволяет разработчикам использовать состояние и другие возможности React без написания...
1
0
773
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Похоже, никто не любит отвечать на шутливые вопросы новичков....

в любом случае, когда я начал изучать шутку, я столкнулся с некоторыми забавными сообщениями об ошибках, которые не отражают фактическую ошибку. Есть несколько возможных ситуаций, которые может рассмотреть разработчик.

  1. Вы не должны были издеваться над своим модулем, говоря, что A_module находится внутри node_modules, поэтому один из модулей говорит, что B_modules внутри A_modules использует NativeModules из реакции, поэтому Jest не может выполнить тест. Пожалуйста, посмотрите на трассировку стека или используйте отладчик, чтобы узнать, какой из них вы предпочитаете имитировать.
  2. Смоделируйте модуль, который использует NativeModules (аналогично пункту 1, но более прямолинейно и лаконично)
  3. Вам нужно лучше понять шутку, прежде чем продолжить. Чтение документации — это хорошо, но переходите к примерам, когда считаете нужным. особенно проверьте Примеры, который вам действительно нужен, и прочитайте соответствующие. Во многих случаях либо ваши настройки Babel, либо методы насмешек неверны.
    1. используйте jest.mock вместо jest.genMockFromModule. Почему? есть некоторые функции или функция инициализации, которые вызывают сбой вашего теста в этом операторе. Потому что он вызывает NativeModules или что-то, что шутка не позволяет. вместо этого используйте макет.

Решения этого вопроса: пожалуйста, обратитесь к этому самое актуальное решение.

Спасибо

Другие вопросы по теме