【问题标题】:Jest does not resolve lodash importsJest 无法解析 lodash 导入
【发布时间】:2018-08-28 15:41:23
【问题描述】:

我正在使用 StencilJS 编写一个 Web 组件。我的组件导入的辅助类之一 (ArrayHelper.ts) 在顶部有这些导入:

import transform from 'lodash/transform';
import isEmpty from 'lodash/isEmpty';
import isEqual from 'lodash/isEqual';
import isObject from 'lodash/isObject';

在本地编译和服务时,这一切都很好。但是,当编写一些单元测试并使用 jest 执行它们时,jest 无法正确解析这些导入:

TypeError: isObject_1.default is not a function at Function.Object. 
<anonymous>.ArrayHelper.toArray (/mycomponent/ArrayHelper.ts:15:35)

当我将 ArrayHelper.ts 中的导入更改为

import { isEmpty, isEqual, isObject, transform } from 'lodash';

然后 Jest 将成功运行测试而不会出现问题,但随后 stencilJS 的 TS 编译不再起作用:

Missing Export: mycomponents/ArrayHelper.js:5:27
'isObject' is not exported by node_modules/lodash/lodash.js

任何想法如何让这些导入适合这两种情况?

【问题讨论】:

  • 您使用的是哪个版本的 jest?测试的脚本是什么?

标签: lodash jestjs stenciljs


【解决方案1】:

尝试像这样导入 lodash

import * as _ from "lodash";

【讨论】:

  • 它违背了从 lodash 导入部分模块的整个目的......
【解决方案2】:

尝试将其添加到您的 stencil.config.js:

nodeResolve: {
  browser: true
}

发生这种情况是因为 lodash 在 Jest 运行您的测试时不可用。它是一种实验性浏览器技术吗?

参考-Link1Link2

【讨论】:

    猜你喜欢
    • 2018-02-03
    • 1970-01-01
    • 1970-01-01
    • 2020-06-24
    • 1970-01-01
    • 2012-04-04
    • 2013-10-04
    • 1970-01-01
    • 2016-03-12
    相关资源
    最近更新 更多