尝试在 Jasmine 规范文件中导入类时出现“语法错误:无法在模块外使用导入语句”

HGP*_*GPB 8 javascript node.js jasmine ecmascript-6 es6-modules

作为练习,我决定使用 ES6 语法创建一个在浏览器中运行的普通 JavaScript 小游戏。该程序运行良好。

我想用 Jasmine 测试它。但是,每当我尝试执行导入时,例如

import Deck from "../Deck.js";
Run Code Online (Sandbox Code Playgroud)

Deck.js 启动:

export default class Deck {
Run Code Online (Sandbox Code Playgroud)

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

我做过的事情:

  • 安装了 node v13.0.1 - 我认为这个版本的 node 允许 es6 模块。
  • 安装茉莉花并初始化 node ./node_module/jasmine/bin/jasmine init
  • 运行node ./node_module/jasmine/bin/jasmine- 无需导入即可正常工作
  • 运行node --experimental-modules ./node_module/jasmine/bin/jasmine- 不适用于导入
  • 尝试需要而不是导入:const Deck = require('../Deck.js');-SyntaxError: Unexpected token 'export'

我如何让茉莉花与进口一起工作?目前我无法包含任何要测试的文件!

我确定我以错误的方式解决了这个问题,但我只想要一些 cmd 行测试。

Oli*_*sis 0

请遵循 Babel 的官方指南:https://babeljs.io/setup#installation

然后从此解决方案中选择一个选项:/sf/answers/4157980221/

就我个人而言,我已将我的规范文件重命名为具有mjs扩展名,因为我想使用 LTS(当前为 12)版本的节点。