Я использую Webpack для создания своего проекта Typescript. Тем не менее, веб-пакет замедляется, так как мой проект становится все больше.
Я хочу разбить проверку машинописи на отдельный процесс, используя tsc
.
Однако, когда я запускаю tsc
в моем проекте, я получаю ошибки объявления типов, которые не появляются при использовании ts-loader
для Webpack.
Я думаю, что это связано с тем, как машинописный текст и веб-пакет отличаются в импортируемых модулях.
Разрешение модулей:
Очень важно знать, что этот плагин использует машинопись,
не разрешение модулей webpack. Это означает, что вы должны настроить
tsconfig.json правильно. Например, если вы установили файлы:
['./src/someFile.ts'] в tsconfig.json, этот плагин будет проверять только
someFile.ts для семантических ошибок. Это из-за производительности. Цель
этого плагина должен быть максимально быстрым. С модулем машинописи
разрешение нам не нужно ждать веб-пакет для компиляции файлов (что
пересекает граф зависимостей во время компиляции) - у нас есть полный список
файлов с самого начала.
https://github.com/Realytics/fork-ts-checker-webpack-plugin#modules-resolution
Вот несколько примеров ошибок:
node_modules/@types/node/index.d.ts:143:13 - error TS2300: Duplicate identifier 'require'.
node_modules/@types/react-native/index.d.ts:8719:14 - error TS2300: Duplicate identifier 'require'.
node_modules/@types/react-native/index.d.ts:8745:18 - error TS2717: Subsequent property declarations must have the same type. Property 'geolocation' must be of type 'Geolocation', but here has type 'GeolocationStatic'.
node_modules/@types/webpack-env/index.d.ts:203:13 - error TS2300: Duplicate identifier 'require'.
node_modules/rxjs/scheduler/VirtualTimeScheduler.d.ts:24:15 - error TS2416: Property 'work' in type 'VirtualAction<T>' is not assignable to the same property in base type 'AsyncAction<T>'.
подробнее здесь: https://gist.github.com/IanEdington/b1567b2cabae262eac8a6ef6a4206d4b