Есть ли способ настроить глобальные переменные как цель для "moduleNameMapper" в шутку?
У меня есть приложение 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
.
Я делаю что-то неправильно? Или есть другой способ решить эту проблему?
Спасибо:)