Я использую vue/cli-plugin-unit-jest, и после его настройки в соответствии с документами я продолжаю получать эту ошибку:
Cannot find module '@antmedia/webrtc_adaptor' from 'src/components/player.vue'
Require stack:
src/components/player.vue
src/components/Dashboard.vue
src/views/Operation.vue
src/router/index.js
src/stores/modules/account.module.js
src/stores/index.js
tests/unit/cameras.spec.js
61 | import config from '../config/config'
62 | import { mapActions, mapState } from 'vuex'
> 63 | import { WebRTCAdaptor } from '@antmedia/webrtc_adaptor'
| ^
64 |
65 | export default {
66 | name: 'player',
at Resolver.resolveModule (node_modules/jest-resolve/build/resolver.js:324:11)
at Object.<anonymous> (src/components/player.vue:63:1)
at Object.<anonymous> (src/components/Dashboard.vue:18:1)
Когда я удаляю строку 63, тест начинает проходить, поэтому очевидно, что есть какая-то проблема с шуткой, разрешающей путь, но я не могу найти решение.
Это файл jest.config.js:
module.exports = {
verbose: true,
preset: '@vue/cli-plugin-unit-jest',
ResolverOptions: {
paths: [
'<rootDir>/src'
]
}
}
Эта проблема возникает из-за того, что по умолчанию jest ничего не преобразует из /node_modules.
Что сработало для меня, так это:
заменить import { WebRTCAdaptor } from '@antmedia/webrtc_adaptor'
с import { WebRTCAdaptor } from '../../node_modules/@antmedia/webrtc_adaptor/src/main/webapp/js/webrtc_adaptor.js'
А в package.json
добавить:
"jest" : {
"preset": "@vue/cli-plugin-unit-jest",
"transformIgnorePatterns": [
"/node_modules/(?!@antmedia).+\\.js$"
]
},
Конечно, замените @antmedia
на пакет, который вы хотите импортировать.