Gist
У меня есть Monorepo только с пакетами Typescript.Когда я запускаю tsc --build
, все пакеты будут скомпилированы в Javascript.Это работало нормально, пока я не добавил пакет, содержащий приложение Angular.
Для тестирования своих пакетов я использую Jest.Но Angular использует Jasmine.
Issue
При запуске tsc --build
сейчас кажется, что типы Jasmine и Jest конфликтуют.
Я получаюВсего 184 ошибки.Исходя из node_modules/@types/jest
и node_modules/@types/jasmine
и моих собственных пакетов:
Ошибки
Я показываю только несколько фрагментов из журнала ошибок, так как было бы слишком долго вставлять целоевещь.Вы можете найти полный журнал ошибок здесь: https://gist.github.com/flolude/115e92ca13cd8c86a4dca03528b92d4f
Jest node_modules/@types/jest/index.d.ts: 1310: 9 - ошибка TS2717: последующие объявления свойств должны иметьтого же типа.Свойство 'message' должно иметь тип 'string', но здесь имеет тип 'string |(() => строка) '.
1310 message: string | (() => string);
~~~~~~~
Жасмин
node_modules/@types/jasmine/ts3.1/index.d.ts:304:9
304 message?: string;
~~~~~~~
'message' was also declared here.
Мои собственные пакеты
services/gateway/src/gateway.server.ts:7:24 - error TS2307: Cannot find module '@cents-ideas/utils'.
7 import { Logger } from '@cents-ideas/utils';
~~~~~~~~~~~~~~~~~~~~
Solution
Все компилируется без ошибок, когда я удаляю типы Jasmine из package.json проекта Angular.Вот почему я уверен, что они вызывают ошибки.Но мне нужны эти пакеты для тестирования с Angular.
"devDependencies": {
// no errors when I remove those 2 packages
"@types/jasmine": "~3.3.8",
"@types/jasminewd2": "~2.0.3",
// ...
}
Исходный код
Как я уже упоминал, я работаю в Monorepo.Вот исходный код, если вам нужна дополнительная информация: