从“chai”导入{期望};语法错误:无法在模块外部使用 import 语句

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

在测试其中一项功能时,我遇到了这种错误。有什么问题吗?

import { expect } from 'chai';
import { PathFinding } from './path-finding.js';

describe('aStar', () => {
  const o = 0; // intermediate points when going forwards (the trace)
  const u = 0; // turning points
  const s = 0;
  const f = 0;

  it('should find a valid path', () => {
    const graph = [
      [0, u, o, o, f],
      [u, 1, 1, 1, 1],
      [0, u, o, u, 0],
      [1, 1, 1, 1, u],
      [s, o, o, u, 0],
    ];
    const start = { x: 0, y: 4 };
    const finish = { x: 4, y: 0 };
    const path = PathFinding.aStar({ graph, start, finish });
    expect(path).to.eql([
      { x: 3, y: 4 },
      { x: 4, y: 3 },
      { x: 3, y: 2 },
      { x: 1, y: 2 },
      { x: 0, y: 1 },
      { x: 1, y: 0 },
      finish,
    ]);
  });

...

/Users/user/WebstormProjects/hsu/src/path-finding/path-finding.spec.js:1 从“柴”导入{期望}; ^^^^^^

语法错误:无法在模块外部使用 import 语句 在wrapSafe(节点:内部/模块/cjs/loader:1018:16) 在 Module._compile (节点:内部/模块/cjs/loader:1066:27) 在 Object.Module._extensions..js (节点:内部/模块/cjs/loader:1131:10) 在Module.load(节点:内部/模块/cjs/loader:967:32) 在 Function.Module._load (节点:内部/模块/cjs/loader:807:14) 在 Module.require (节点:内部/模块/cjs/loader:991:19) 在需要时(节点:内部/模块/cjs/helpers:92:18) 在 Object.exports.requireOrImport (/Users/antongorshkov/WebstormProjects/hsu/node_modules/mocha/lib/esm-utils.js:20:12) 在 Object.exports.loadFilesAsync (/Users/antongorshkov/WebstormProjects/hsu/node_modules/mocha/lib/esm-utils.js:33:34) 在 Mocha.loadFilesAsync (/Users/antongorshkov/WebstormProjects/hsu/node_modules/mocha/lib/mocha.js:431:19) 在 singleRun (/Users/antongorshkov/WebstormProjects/hsu/node_modules/mocha/lib/cli/run-helpers.js:125:15) 在exports.runMocha(/Users/antongorshkov/WebstormProjects/hsu/node_modules/mocha/lib/cli/run-helpers.js:190:10) 在 Object.exports.handler (/Users/antongorshkov/WebstormProjects/hsu/node_modules/mocha/lib/cli/run.js:362:11) 在/Users/antongorshkov/WebstormProjects/hsu/node_modules/yargs/lib/command.js:241:49

javascript chai
2个回答
0
投票

Node.js 遵循 CommonJS 模块系统。

require

const { expect } = require('chai');
const { PathFinding } = require('./path-finding.js');

0
投票

这是根据 #724 修复的。它在即将发布的 v4 版本中可用。可通过 npm 获取预发布版本:[电子邮件受保护]

然后: const { 期望 } = require('chai'); const { PathFinding } = require('./path-finding.js');

© www.soinside.com 2019 - 2024. All rights reserved.