Есть ли способ настроить глобальные переменные как цель для "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.

Я делаю что-то неправильно? Или есть другой способ решить эту проблему?

Спасибо:)

0 ответов

Другие вопросы по тегам