Невозможно использовать оператор импорта вне модуля в ES2018
Я получаю сообщение об ошибке, которое я уже встречал пару раз в Интернете, но, похоже, ни одно из них не решило мою проблему в моей среде. Я использую Node12
с TypeScript и Express
.
Когда я выполняю npm run tsc
вроде все хорошо компилируется. С другой стороны,npm run test
который выполняет Mocha
тесты, выдает следующее сообщение об ошибке:
...tests\test_database.ts:1
import { Database } from "./../server/database";
^^^^^^
SyntaxError: Cannot use import statement outside a module
at wrapSafe (internal/modules/cjs/loader.js:1047:16)
В Database
класс экспортируется как обычно с export class Database { ...
Интересно, что импорт НЕ в строке 1, а на самом деле в строке 2. Кажется, компиляция не прошла? Ноnpm run tsc
удалось? Кто-нибудь знает, в чем может быть проблема?
tsconfig.json
{
"compilerOptions": {
"resolveJsonModule": true,
"target": "es2018",
"module": "esnext",
"sourceMap": true,
"downlevelIteration": true,
"strict": true,
"noImplicitAny": true,
"moduleResolution": "node",
"esModuleInterop": true,
"experimentalDecorators": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
}
}
package.json
{
"name": "foo-server",
"version": "1.0.0",
"description": "",
"main": "server\\server.js",
"type": "module",
"scripts": {
"tsc": "tsc",
"test": "mocha -r ts-node/register ./tests/**/test_*.ts"
},
...
}