Babel의 "module-alias"플러그인을 "proxyquire"테스트 라이브러리와 함께 사용하려하지만 많은 행운이 없습니다.Babel Plugin 모듈 별칭은 실제로 어떤 경로입니까?
도서관 스토리
당신과 같이 테스트를 위해 모듈의 의존성을 조롱
Proxyquire가하자 (당신이 두 모듈 별칭/proxyquire에 익숙하다면 넘어가 셔도됩니다) :
const someFunctionToTest =
proxyquire(pathToSomeFunctionToTestsModule, {
pathToDependency: fakeVersionOfDependency
});
바벨의 모듈 별칭 플러그인을 사용하면 가져 오기 경로를보다 편리하고 일관되게 만들 수 있습니다. 예를 들어, 내가 (.babelrc에서) 지정할 수 있습니다 대신에 (세 개의 디렉토리 깊은 중첩 된 모듈에서 가져올 때)을 입력 할 필요없이 다음
"plugins": [
["module-alias", [
{ "src": "./", "expose": "~" }
]],
및 require('../../../someModule') I can just type
필요 ('~/someModule') '.
문제는 내 문제가
, 그들은 함께 작동하지 않습니다.
// src/someModule.js
const someDependency = require('~/src/someDependency');
doSomethingWith(someDependency);
를하고 난 할 수 있어야 someDependency
의 모의 버전 someModule
을 테스트하려는 : 내가 someModule
이있는 경우 someDependency
에 따라 달라집니다
const proxiedSomeModule =
proxyquire('~/src/someModule', {
'~/src/someDependency': fakeVersionOfSomeDependency
});
...하지만
proxyquire
알려줍니다 me`오류 : '~/src/someModule'모듈을 찾을 수 없습니다.
Babel은 '~/src/someModule'을 실제 경로로 변환하므로 Proxyquire가 별칭이 지정된 경로를 찾을 때 찾을 수 없습니다.
내 질문입니다 질문 : 알아낼 수있는 방법이 무엇인지 그것으로 '~/SRC/someModule'이며, 바벨 변환 후 (즉, 때 proxyquire 거래의 실제 경로.)? 또는 별칭이 지정된 경로로 프록시 키를 사용하는 방법이 있습니까?