Chai 导入时出现意外令牌

Chai Unexpected token when importing

所以我有这个非常非常简单的虚拟测试:

import {expect}  from 'chai';

describe('calculate', function () {
    it('add', function () {
        let result = 2 + 5;
        expect(result).equal(7);
    });
});

我在 运行 时收到以下错误:

(function (exports, require, module, __filename, __dirname) { import { expect } from 'chai';
                                                                     ^

SyntaxError: Unexpected token {

谁能告诉我这是怎么回事?

您需要转译代码才能使用 commonjs 导入。您可以使用 babel 来完成这样的任务,请参阅文档 https://babeljs.io/docs/en/babel-plugin-transform-modules-commonjs.

通过 cli,您可以 运行 babel --plugins @babel/plugin-transform-modules-commonjs script.js 然后只需 运行 您的脚本。

如果您不想使用转译(使用 babel 或其他)或 commonjs,您可以使用加载程序,例如 esm: https://www.npmjs.com/package/esm.

根据文档,在 运行ning yarn add esm 之后你可以 node -r esm main.js.