Вам нужно использовать компилятор, а затем использовать скомпилированные файлы при запуске тестов.
Во многих ссылках говорится, что нужно добавить type: module
, но не говорите намного больше.
Для ясности, Основное c сообщение:
SyntaxError: Cannot use import statement outside a module
потому, что вы используете import
/ export
и , вы пытаетесь запустить файлы напрямую без компиляции.
Смещение ума здесь привыкает к редактированию файлов в одном каталоге и запуску тестов в другом.
Существует несколько различных подходов к этому в зависимости от конкретных потребностей c. Вот один из самых простых подходов, которые я нашел, используя Babel для этапа компиляции:
- Установить babel
npm install babel --save-dev
Добавить команды babel в package.json
сценарии, например:
"scripts": {
"test": "babel src/ --out-dir lib --presets=@babel/env; jest lib/*.test.js",
"build": "babel src/ --out-dir lib --presets=@babel/env"
}, // this was for jest but you can use mocha, etc as needed
// Note that using preset this way eliminates the need for a specific .babel.config.json file
Теперь, если вы запустите:
jest .
вы получите SyntaxError: Cannot use import statement outside a module
, но если вы запустите npm t
, вы get
Successfully compiled 2 files with Babel.
PASS lib/app.test.js
All tests
✓ Canary test (2ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
В дальнейшем, просто не забудьте:
- Редактировать файлы в
src/
- Запуск тестов в
lib/