У меня есть проект TypeScript с Jest-тестированием, который работает просто отлично, используя ts-jest в качестве моего преобразователя.Однако, когда я пытаюсь использовать пакет, который, кажется, был написан на TypeScript, но был распространен как ES6, я сталкиваюсь с ужасающей ошибкой: «Неожиданный экспорт токена», когда мои тесты запускаются, когда он сталкивается с ключевым словом «export» наэтот новый пакет.
Я понимаю ПОЧЕМУ это происходит, но я не могу понять, как обойти это, даже после тщательного изучения проблемы и наблюдения, как другие исправили ее с помощью transformIgnorePatterns
(как этот пост комментарий и многие другие), но пока я не продвинулся в этом.
Тесты работают нормально, пока я не импортирую и не ссылаюсь на одну из этих библиотек проблем.Просто добавив:
import { Environment, EnvironmentType } from '@microsoft/sp-core-library';
...
const x: EnvironmentType = Environment.type;
... и затем запустив мои тесты, я получу:
/Users/ac/_play/jest-transform-repro/node_modules/@microsoft/sp-core-library/lib/index.js:11
export { default as _BrowserDetection } from './BrowserDetection';
^^^^^^
SyntaxError: Unexpected token export
Я создал проект, чтобы легко повторить мою проблему здесь: https://github.com/andrewconnell/jest-transform-repro
- клон https://github.com/andrewconnell/jest-transform-repro
- npm install
- npm test
наблюдать, как все работает
- открыть файл. / Src / webparts / helloWorld / components / Sample / Sample.tsx и раскомментируйте две строки
- npm test
наблюдайте сбой
Я пытался обновить transformIgnorePatterns
до <rootDir>/../node_modules/(?!(@microsoft/sp-core-library))
и другие варианты этого, но это не помогает.Я видел сообщения об изменении .bablerc => babel.config.js, но я не использую Babel в своем проекте, так как все это TypeScript.
Как только я получаю эту работу для этой библиотеки, язнаю, что мне нужно исключить больше ... много больше ... поэтому в идеале я хотел бы создать что-то, что обращается к пакетам "@ microsoft / *", а не только к тому, что перечислен выше, как вы можете видеть по умолчанию "npm install "в репозитории выше, есть еще много вопросов, которые могут вызвать у меня проблемы.
Идеи?Я в растерянности: (