无法在ES2018中的模块外使用导入语句

时间:2020-06-27 22:50:25

标签: node.js typescript es2018

我收到一条错误消息,我已经在网络上发现了两次,但似乎都无法解决我所在环境中的问题。我将节点12与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 个答案:

没有答案