【问题标题】:Mocha / Webpack: Cannot use import statement outside a moduleMocha / Webpack:不能在模块外使用导入语句
【发布时间】:2021-12-12 16:46:03
【问题描述】:

我是 Node 和 JS 测试的新手。我有一个带有 Webpack 作为捆绑器的 Web 应用程序。我有一些包含在页面中的入口点 JS。入口点使用这样的模块文件:

export default function() {
    ...
}

现在我想对这个模块进行单元测试。我已经拿起了摩卡,但这对我来说并不重要。可以是 Jest 或其他任何东西。

我像这样写了一个非常简单的test.js。它什么都不做,只是测试整个设置是否有效:

import foo from '../js/someModuleOfMine'

const assert = require('assert')

describe('Test Suite', () => {
    it('should at least run', () => {
        assert.equal(true, true)
    })
})

从 CLI 执行 mocha 给我这个错误:

import foo from '../js/someModuleOfMine'
^^^^^^

SyntaxError: Cannot use import statement outside a module

遵循一些建议,我已经厌倦了将 "type": "module" 添加到我的 package.json 中,但这只会将错误变为更加模糊的东西:

Error: Not supported

我肯定遗漏了一些明显的东西,但我无法理解。

【问题讨论】:

  • 解决问题的运气好吗?
  • 很遗憾没有:(

标签: javascript webpack ecmascript-6 mocha.js


【解决方案1】:

不确定它是否会帮助 OP,但我遇到了同样的问题,这是由于打字稿造成的。我是这样解决的:

安装 ts-node:

npm install ts-node --save-dev

在 mocha 配置中添加 require 行(我在 package.json 中,但也可以在 .mocharc.json 文件中):

  "mocha": {
    "spec": "./**/*test.ts",
    "ignore": "./node_modules/**",
    "require": "ts-node/register/files",
    "timeout": 20000
  }

【讨论】:

  • 不幸的是我没有使用打字稿
猜你喜欢
  • 2020-07-14
  • 2020-09-22
  • 2020-11-20
  • 2021-09-01
  • 2021-02-06
  • 2021-07-05
  • 2020-02-05
  • 1970-01-01
  • 2021-12-28
相关资源
最近更新 更多