React Flow: не удается разрешить модуль, связанный с реакцией

Я начал проект React Native с нуля и настроил Flow.

Когда я запускаю npm run flow, все работает нормально, за исключением небольшой проблемы с модулем react-native:

Cannot resolve module react-native.

Я использую:

"react": "16.3.1",
"react-native": "0.55.3",
"flow-bin": "0.74.0"

Мой .flowconfig:

[ignore]
.*/node_modules/.*
.*/.cache/.*
.*/test/.*

[include]

[libs]

[lints]

[options]

[strict]

Пробовал с "flow-typed": "2.4.0", но не получилось.

Я нашел следующий проблема, но решений нет: /

Вы использовали. инструмент create-react-app для создания семян, а затем после npm я что-то упаковал?

RIYAJ KHAN 08.06.2018 17:31

Забыл сказать, что использую Expo.

Hristo Eftimov 08.06.2018 17:32

даже вы использовали Expo, но выполнили ли вы вышеуказанный шаг?

RIYAJ KHAN 08.06.2018 17:33

Нет, это все. Я использую расширение Flow для Visual Studio Code, но не думаю, что это имеет смысл.

Hristo Eftimov 08.06.2018 17:38

Я инициализировал пустое приложение expo, установил flow-bin, инициализировал пустой файл .flowconfig, добавил @flow в App.js и выполнил npx flow - вроде все работает. Я что-нибудь пропустил, чтобы воспроизвести вашу проблему?

amankkg 08.06.2018 23:55

Вы нашли какое-нибудь решение?

Bruno Mazzardo 12.07.2018 01:58

@BrunoMazzardo, нет :(

Hristo Eftimov 12.07.2018 09:36

Я сделал, проверьте этот .flowconfig и посмотрите, работает ли он для вас. textuploader.com/dzfet

Bruno Mazzardo 12.07.2018 15:19

К сожалению, до сих пор не работает :(

Hristo Eftimov 12.07.2018 17:21

Печально, вчера у меня было 4 часа чистой ненависти, к счастью, у меня это сработало.

Bruno Mazzardo 12.07.2018 18:53
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
3
10
2 857
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вам необходимо добавить определение типа для react-native.

Создайте папку с именем type-def-lib в корне вашего проекта и внутри создайте файл с именем react-native.js с этим содержимым.

declare module 'react-native' {
  declare module.exports: any
}

Затем в вашем .flowconfig добавьте эту папку в libs:

[libs]
./type-def-libs

Теперь yarn run flow не должен выдавать ошибок.

Что это на самом деле делает? Спасибо!

Thomas G Henry 16.10.2018 09:17

он предоставляет "libdef" для модуля, поддерживающего реакцию, я не уверен, почему он вообще работает, поскольку libdef не нужны, но вы можете прочитать документацию о процессе здесь: flow.org/en/docs/libdefs, насколько мне известно, поток выполняет точный процесс выше автоматически для всех библиотек, которые не имеют объявлений типов (устанавливая их на any), поэтому я собираюсь предположить, что текущее объявление типа собственного потока реакции имеет какую-то ошибку, и это явное объявление любого типа переопределяет это.

Robbie Milejczak 16.10.2018 22:47

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