Невозможно использовать оператор импорта вне модуля в 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"
    },
    ...
}

0 ответов

Другие вопросы по тегам