У меня есть приложение angular, которое импортирует из другого пакета, например так:
import { Logger } from '@myorg/cif-core';
Пакет просто предоставляет связанный файл js, который устанавливает глобальную переменную как myorg-cif-core
. Поэтому у нас есть следующая внешняя конфигурация в webpack.config.js
:
module.exports = {
externals: {
'@myorg/cif-core': 'myorg_cif_core'
};
Я хочу сейчас переключиться с Karma на Jest и столкнуться с проблемами, так как это не может разрешить импорт из @myorg/cif-core
.
Я попытался импортировать пакет в файл test-setup.ts
, чтобы он присутствовал в тестах
import 'node_modules/@myorg/cif-core/bundles/cif-core.min.js';
и определил имена переменных в jest.config.js
moduleNameMapper: {
'@myorg/cif-core': 'myorg_cif_core'
},
Однако, похоже, что-то не так, поскольку я всегда получаю следующую ошибку:
Configuration error:
Could not locate module @myorg/cif-core mapped as:
myorg_cif_core.
Please check your configuration for these entries:
{
"moduleNameMapper": {
"/^@myorg\/cif-core/": "myorg_cif_core"
}
}
Я также уже пробовал некоторые другие варианты, как определение глобальных переменных в jest.config.js
, но с не повезло. :( Есть ли способ заставить это работать? Из того, что я нашел, посмотрев в Google и посмотрев код здесь https://github.com/facebook/jest/blob/aa64672e728738926571746a85c57d1658bdaf55/packages/jest-resolve/src/index.ts кажется, что это вообще не поддерживается - по крайней мере, не с moduleNameMapper
.
Я что-то не так делаю? Или есть другой способ решить эту проблему?
Спасибо:)