@Types использует неправильный модуль (Typescript, http-прокси-промежуточное программное обеспечение, webpack, react)

#webpack #node-modules #webpack-dev-server #http-proxy-middleware

#webpack #узлы-модули #webpack-dev-server #http-прокси-промежуточное программное обеспечение

Вопрос:

Я пытаюсь использовать настройки, аналогичные этому репозиторию, чтобы попытаться создать полнофункциональное приложение typescript с использованием React и Express.

Репозиторий использует tsc-watch, подобный nodemon, для отслеживания файлов сервера, а затем webpack-dev-server для размещения статических файлов react на порту 8085. Тем временем сервер, работающий на 3000, отображает приложение react, проксируя все статические запросы в / statics на 8085.

Когда я клонирую репозиторий, все работает. Однако в моем собственном репозитории (где я пытаюсь узнать, как выполнить аналогичную конфигурацию, сервер продолжает выдавать эту ошибку:

node_modules/@types/webpack-dev-server/index.d.ts

затем:

node_modules/http-proxy-middleware/dist /index»‘ не имеет экспортированного элемента ‘Config’.

Когда я захожу в node_modules, я вижу, что @types / webpack-dev-server ожидает, что там будет конфигурация от http-proxy-middleware. В @types / http-proxy-middleware есть интерфейс под названием Config. Однако в обычной папке модуля узла http-proxy-middleware такого модуля нет, и именно это является причиной ошибки.

Мой вопрос в том, как мне заставить @types / webpack-dev-server использовать @types / http-proxy-middleware, а не просто node_modules / http-proxy-middleware? Или я упускаю что-то совсем другое?

При необходимости я могу опубликовать код.

Комментарии:

1. Можете ли вы поделиться своим репозиторием.?

2. привет @gilamran, да, я сделаю это сейчас

3. Вы увидите, что, вообще говоря, это ваш код — я пока пропускаю содержимое манифеста, просто чтобы посмотреть, смогу ли я заставить что-то работать

4. Я собираюсь запустить новое репозиторий, потому что я понял, что в этом есть проблема с подмодулем

5. github.com/raph90/ts_starter_fullstack

Ответ №1:

Вот несколько фактов, которые могут помочь:

  • Используется statics-router.ts http-proxy-middleware , версия «^1.0.3»
  • webpack-dev-server зависит от версии «0.19.1»
  • Config Вкл http-proxy-middleware был удален в версии 1.
  • Определения типов для версии 1 являются частью http-proxy-middleware самой себя (а не в разделе @types, как раньше)
  • Если вы заглянете в /node_modules/@types/webpack-dev-server/package.json , вы увидите, что на dependencies нем есть: "@types/http-proxy-middleware": "*" . Обратите внимание, что это зависит от версии @types .d.ts

Похоже, что typescript сначала ищет определения типов в node_modules/LIBRARY , а затем в @types , поэтому он «находит» .d.ts для версии 1 вместо версии, 0.19.1 подобной webpack-dev-server требуемой

Чтобы решить эту проблему, просто добавьте: "skipLibCheck": true, в общий tsconfig.json

Комментарии:

1. большое спасибо Gil — я посмотрю, смогу ли я найти способ сначала пройти через @types