Vue テンプレートとスクリプトでエイリアスを使用して vue-jest 設定をマップする方法はありますか?
P粉476547076
P粉476547076 2023-08-26 17:10:07
0
1
487
<p>依存関係: "@vue/cli-plugin-unit-jest": "^4.5.13"、"@vue/test-utils": "^1.2.1"、"vue -冗談": "^3.0.7"

; <p>vue.config.js にエイリアス (たとえば「foo」) を設定するアプリケーションがあります。</p> <pre class="brush:php;toolbar:false;">module.exports = { chainWebpack: (config) => { //プロジェクト名をエイリアスとして設定します config.resolve.alias.set('foo', __dirname); }、 };</pre> <p>import ステートメントと HTML タグの src 属性の場合...</p> <p>main.js 内:</p> <pre class="brush:php;toolbar:false;">... 「foo/src/components/core/App」からアプリをインポートします。 ...</pre> <p> ../src/core/App/index.vue:</p> <pre class="lang-html prettyprint-override"><code><script src="foo/src/components/core/App/script.js" /> <スタイル モジュール src="foo/src/components/core/App/style.css" /> <template src="foo/src/components/core/App/template.html" /> </code></pre> <p>jest.config.js で moduleNameMapper を次のように使用できることはわかっています。</p> <p><code>'^foo(.*)$': '<rootDir>$1',</code></p> <p>ただし、これは HTML タグの src 属性に現れるエイリアスをマッピングしません。構成設定またはその他の手段を通じて、vue-jest にこれらのプロパティ パスを解釈させる方法はありますか? </p> <p>アドバイスをいただければ幸いです。 </p>
P粉476547076
P粉476547076

全員に返信(1)
P粉256487077

SFC での URL 解析

vue-jest SFC のトップレベル ブロック タグの src URL は解決できないため、src/components/core/ で解決する必要があります。 App/index.vue 次の場所でエイリアスなしの相対パスを使用します。 リーリー

テンプレートコンテンツのURL解析

vue-jest@vue/component-compiler-utils を使用してテンプレートをコンパイルしますが、URL 解析には transformAssetUrlsoption が必要です。 vue-jest 3.x は @vue/component-compiler-utils へのオプションの受け渡しをサポートしていませんが、 #4.0.0-rc.1 では # サポートしています ##templateCompiler.transformAssetUrls構成実装。 URL 解析が有効になっている場合でも、Vue CLI 設定 jest

から

は、画像 を含む require のメディアに対して空の文字列を返します。実稼働環境で通常に解析された URL を使用してテストを実行する必要がある場合は、url-loader を模倣する Jest コンバーターが必要になります。 Vue CLI 設定ローダーは、4KB より大きい場合は を含む解析されたファイル名を返し、それ以外の場合は、base64 データ URL を返します。 URL 解析を有効にするには:

    vue-jest
  1. 4:

    にアップグレードします リーリー

    カスタム
  2. my-jest-url-loader
  3. 用に次のファイルを作成します。これは後で使用します:

    リーリー

    Vue CLI のデフォルトの Jest プリセットを誤って上書きしないようにするには、
  4. jest.config.js## でマージ ツール (例:
  5. lodash.merge) を使用します。 #カスタム構成を挿入します。

    Jest global
  6. vue-jest

    構成を追加し、templateCompiler.transformAssetUrls を設定します。 結合プリセットの

    transform
  7. プロパティを変更して、
  8. my-jest-url-loader

    コンバータを使用して画像を処理します。これには、競合を避けるために、デフォルトの Jest プリセットから他の画像コンバーターを削除する必要があります。 リーリー

    GitHub デモ
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート