首页 > 解决方案 > ReferenceError:未定义导出

问题描述

我正在使用 karma 运行测试,并且我的项目的一个依赖项依赖于 es-cookie,并且在运行测试时似乎给我带来了问题。

我尝试添加一个 commonjs 预处理器,但它给出了一个语法错误,可能是因为 commonjs 不适用于其他文件。我尝试将它与另一个预处理器链接,但它仍然不起作用。

preprocessors: { 'packages/**/test/**/*.test.js': ['globals'], 'node_modules/**/*.js': ['commonjs'], },

测试应该可以顺利运行,但是当没有 commonjs 预处理器时会弹出此错误

未捕获的 ReferenceError:未在 node_modules/es-cookie/src/es-cookie.js:17:1 中定义导出

ReferenceError:未定义导出

更新:

这是有问题的行:

exports.__esModule = true;

我尝试将其更改为

export const __esModule = true;

我所有的测试都成功运行。但是,是否允许更改节点模块依赖项的代码,有没有办法在 Karma 中对其进行预处理?

标签: javascriptecmascript-6karma-runnercommonjs

解决方案


推荐阅读