Я столкнулся с ситуацией, когда определение типа в node_modules/@types
устанавливает свои собственные зависимости @types, и эти «вложенные» @types конфликтуют с моими @types верхнего уровня.
@types
|-angular //v1.5
|-angular-ui-bootstrap
|-node_modules
|-@types
|-angular //v1.6
Как я могу исключить node_modules/@types/**/node_modules
из моего tsconfig?
Одно предостережение - я использую awesome-typescript-loader, который может иметь некоторые ограничения..
Что я пробовал:
1 - глобус файла в свойстве exclude
для исключения вложенных node_modules
compilerOptions.exclude: '../node_modules/@types/**/node_modules'
2 - явное объявление types
compilerOptions.types: ['angular', 'angular-ui-bootstrap']
3 - глобус файла в typeRoots
для исключения вложенных модулей node_modules
compilerOptions.typeRoots: ['../node_modules/@types/**/!(node_modules)']
Что я узнал
1 - exclude, похоже, не работает с @types
2 - включение типа с "типами" означает включение зависимых от него @types
3 - typeRoots, похоже, не работает с файловыми глобусами (или я неправильно пишу глобус)
По теме:
Исключить типизацию @types в установленных зависимостях
https://github.com/Microsoft/TypeScript/issues/9731
https://github.com/Microsoft/TypeScript/issues/11917
https://github.com/s-panferov/awesome-typescript-loader/issues/492
tsconfig - Как игнорировать @ types / независимо от / node_modules для определенного каталога?
Подробная информация о моей среде
"node": "8.6.0", "typescript:" 2.8.3 "," awesome-typescript-loader ":" 5.0.0 "," webpack ":" 4.8.3 ",
ngController
в некоторых частях. Я надеюсь на решение, которое я смогу реализовать сейчас, без согласования с товарищами по команде и проведения обширного регрессионного тестирования. - person user2954463   schedule 25.05.2018angular-ui-bootstrap
всегда будет нужна более поздняя версия типов. - person Tim B James   schedule 25.05.2018