TypeScript не анализирует исходный веб-код

Уже проверенные предложения здесь и здесь безуспешно

У меня есть проект с такой структурой каталогов:

.
  - /app
  - /web

app - это приложение для реагирования (созданное вручную, а не с create-react-native-app).

web - приложение для реагирования, созданное с использованием create-react-app.

Оба используют TypeScript.

Я пытаюсь визуализировать компонент из app в приложении web с помощью react-native-web, но TypeScript, похоже, не анализирует файл, поскольку я получаю эту ошибку:

You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
| 
> export type Props = {

Учитывая, что TypeScript нормально работает в app и web независимо, я не уверен, что мне не хватает. Одна небольшая особенность проекта заключается в том, что, поскольку create-react-app не разрешает относительный импорт извне своей собственной папки src, мне пришлось создать символическую ссылку app, используя npm link app в каталоге web, чтобы импортировать компоненты приложения.

Не уверен, что это вызывает проблему, но я очень озадачен, поэтому любые предложения будут очень признательны.


person Robkwood    schedule 09.01.2020    source источник
comment
Ради здравого смысла, пробовали ли вы копировать в приложении напрямую, вместо создания символических ссылок, и посмотреть, работает ли это? У меня были проблемы со сценариями реакции и другими утилитами, которые не обрабатывали ссылки так, как вы думаете.   -  person zero298    schedule 09.01.2020
comment
@ zero298 ты имеешь ввиду копирование в node_modules? Просто попробовал, но не повезло :( Хорошая мысль - спасибо!   -  person Robkwood    schedule 09.01.2020


Ответы (1)


Решением стало добавление ts-loader в конфигурацию веб-пакета моего React для веб-приложения. Это было немного усложнено тем фактом, что create-react-app не позволяет изменять свои файлы конфигурации, но я смог сделать это с помощью изменено подключение приложения React

Мне также пришлось изменить noEmit в TypeScript на false, чтобы гарантировать, что tsc используется для компиляции, а также для проверки типов (пришлось сделать это и в response-app-rewired, потому что CRA перезаписывает этот параметр в tsconfig.json, если вы попытаетесь его изменить).

Меня все еще немного сбивает с толку, зачем это было нужно, учитывая, что TypeScript отлично разбирался в веб-приложениях и мобильных приложениях по отдельности.

person Robkwood    schedule 13.01.2020