lodash - Jest 不解析 lodash 导入

标签 lodash jestjs stenciljs

我正在使用 StencilJS 编写一个网络组件。由我的组件导入的辅助类之一 (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

关于如何在这两种情况下正确导入这些内容有什么想法吗?

最佳答案

尝试像这样导入 lodash

import * as _ from "lodash";

关于lodash - Jest 不解析 lodash 导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52061730/

相关文章:

javascript - 在underscore/lodash中,如何避免 `map`方法中的重复计算?

javascript - 对象数组与lodash的深度比较

javascript - 使用 Jest + react-testing-library 测试异步 `componentDidMount()`

typescript - 如何使用 Jest 调整 Typescript StencilJS 以支持 ES6 动态模块导入

font-awesome - Font Awesome 在 Stenciljs 组件中不起作用

javascript - 使用 underscore.js 从对象/数组中仅检索一个字段

javascript - 如何使用 lodash 创建嵌套过滤器

javascript - 如何使用 Jest 测试函数内部的类实例

reactjs - 测试库 React 在异步后不会触发点击

jsx - StencilJS JSX 使用 ref 作为 Prop