Vue 템플릿과 스크립트에서 별칭을 사용하여 vue-jest 구성을 매핑하는 방법이 있나요?
P粉476547076
2023-08-26 17:10:07
<p>종속성: "@vue/cli-plugin-unit-jest": "^4.5.13", "@vue/test-utils": "^1.2.1", "vue - 농담": "^3.0.7"</p>
<p>vue.config.js에 별칭(예: "foo")을 설정하는 애플리케이션이 있습니다.</p>
<pre class="brush:php;toolbar:false;">module.exports = {
chainWebpack: (구성) =>
//프로젝트 이름을 별칭으로 설정
config.resolve.alias.set('foo', __dirname);
},
};</pre>
<p>HTML 태그의 import 문과 src 속성의 경우...</p>
<p>main.js에서:</p>
<pre class="brush:php;toolbar:false;">...
'foo/src/comComponents/core/App'에서 앱을 가져옵니다.
...</pre>
<p>../src/core/App/index.vue:</p>
<pre class="lang-html Prettyprint-override"><code><script src="foo/src/comComponents/core/App/script.js"
<스타일 모듈 src="foo/src/comComponents/core/App/style.css" />
<템플릿 src="foo/src/comComponents/core/App/template.html" />
<p>jest.config.js에서 다음과 같이 moduleNameMapper를 사용할 수 있다는 것을 알고 있습니다. </p>
<p><code>'^foo(.*)$': '<rootDir>$1',</code></p>
<p>그러나 이는 HTML 태그의 src 속성에 나타나는 별칭을 매핑하지 않습니다. vue-jest가 구성 설정이나 다른 수단을 통해 이러한 속성 경로를 해석하도록 하는 방법이 있습니까? </p>
<p>어떤 조언이라도 대단히 감사하겠습니다. </p>
SFC의 URL 구문 분석
으아악vue-jest
无法解析SFC中顶级块标签的src
URL,因此您需要在src/components/core/App/index.vue
에서 앨리어싱되지 않은 상대 경로 사용:템플릿 콘텐츠의 URL 구문 분석
vue-jest
使用@vue/component-compiler-utils
编译模板,但URL解析需要transformAssetUrls
选项。vue-jest
3.x不支持向@vue/component-compiler-utils
传递选项,但在4.0.0-rc.1中通过templateCompiler.transformAssetUrls
구성구현.URL 구문 분석이 활성화된 경우에도 Vue CLI는
URL 구문 분석을 활성화하려면:jest
를 이미지jest
以返回空字符串以获取require
的媒体,包括图像。如果您的测试需要与正常解析的URL一起在生产环境中工作,您将需要一个模仿url-loader
를 포함하여require
의 미디어를 가져오기 위해 빈 문자열을 반환합니다. 테스트가 일반적으로 확인된 URL을 사용하여 프로덕션에서 작동해야 하는 경우 URL 로더. Vue CLI 구성 로더는 4KB보다 큰 경우 구문 분석된 파일 이름을 반환하고, 그렇지 않으면 base64 데이터 URL을 반환합니다.업그레이드- 4:
나중에 아래에서 사용할 사용자 정의 - 를 위해 다음 파일을 만듭니다.
Vue CLI의 기본 Jest 사전 설정을 실수로 덮어쓰는 것을 방지하려면 병합 도구(예: -
- Jest global
병합 사전 설정의 - converter를 사용하여 이미지를 처리합니다. 충돌을 피하기 위해서는 기본 Jest 사전 설정에서 다른 이미지 변환기를 제거해야 합니다.
GitHub 데모으아악
vue-jest
으아악
my-jest-url-loader
lodash.merge
)를 사용하여
jest.config.js
에 사용자 정의 구성을 삽입하세요.lodash.merge
)在jest.config.js
에 구성을 추가하고
templateCompiler.transformAssetUrls 코드를 설정합니다. >
.vue-jest
配置,设置templateCompiler.transformAssetUrls
transform
속성을 수정하고으아악
transform
属性,使用我们的my-jest-url-loader