首页 > 解决方案 > 无法在 .spec.ts 文件 NodeJs 中的模块外使用 import 语句

问题描述

对于单元测试,我使用 mocha + chai。我用"test": "mocha --require ts-node/register 'src/**/*spec.ts'".

当我在 *spec.ts 文件中使用 import 时(例如import { expect } from 'chai';

我收到错误SyntaxError: Cannot use import statement outside a module

我的 tsconfig.json:

{
  "compilerOptions": {
    "baseUrl": "src",
    "target": "esnext",
    "module": "esnext",
    "moduleResolution": "node",
    "lib": ["dom", "es2018"],
    "allowSyntheticDefaultImports": true,
    "noUnusedLocals": true,
    "removeComments": true,
    "resolveJsonModule": true,
    "strict": true,
    "typeRoots": ["node_modules/@types"]
  },
  "exclude": ["node_modules"],
  "include": ["src/**/*.ts"]
}

标签: node.jstypescriptmocha.jschai

解决方案


你试过const expect = require('chai')吗?

这是一种包装CommonJS中使用的模块的方法,相当于import { expect } from 'chai';.


推荐阅读