Chai 导入时出现意外令牌

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

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

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 {

谁能告诉我发生了什么事吗?

javascript mocha.js chai
2个回答
2
投票

您需要转译代码才能使用 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

从文档中,运行

yarn add esm
后,您可以直接
node -r esm main.js


0
投票

由于库中的 es6 语法,我在升级到 v5 后遇到了同样的问题。

将其降级为

"chai": "^4.2.0"
后,效果很好。

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