Jest + JavaScript ES 模块

问题描述 投票:0回答:1

我用 JavaScript 构建了一个命令行工具。我想为它编写测试。我认为 Jest 是第一选择。

运行测试时出现以下错误:

SyntaxError: Cannot use import statement outside a module

这是我尝试过的:

  • 我已经通过
    npm install --save-dev jest @babel/core @babel/preset-env babel-jest
  • 安装了 Jest 及其依赖项
  • 我创建了一个
    babel.config.cjs
    文件,其中包含以下内容:
module.exports = {
  presets: [["@babel/preset-env", { targets: { node: "current" } }]],
};

  • 我更新了我的
    package.json
    中的以下部分:
  "type": "module",
  "scripts": {
    "test": "jest"
  },
  "jest": {
    "transform": {
      "^.+\\.js$": "babel-jest"
    }
  },
  • 我的测试位于
    __tests__
    文件夹中,测试文件具有以下命名约定
    fileName.test.js
javascript testing jestjs es6-modules babel-jest
1个回答
0
投票

您需要启用对 ES 模块的实验支持。在您的

package.json
中尝试以下操作,而不是简单地
jest

NODE_OPTIONS='--experimental-vm-modules' jest
© www.soinside.com 2019 - 2024. All rights reserved.