Jest не разрешает импорт lodash - PullRequest
0 голосов
/ 28 августа 2018

Я пишу веб-компонент, используя 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 успешно запустит тесты без проблем, но тогда компиляция TS с помощью stencilJS больше не будет работать:

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

Есть какие-нибудь идеи, как сделать этот импорт правильным для обеих ситуаций?

1 Ответ

0 голосов
/ 06 сентября 2018

Попробуйте добавить это в свой stencil.config.js:

nodeResolve: {
  browser: true
}

Это происходит потому, что lodash недоступен, когда Jest запускает ваши тесты. Это экспериментальная браузерная технология.

См. - Ссылка1 Ссылка2

...