ウェブサイト検索

TypeScript - なぜ __tests__ フォルダーで長い相対パスを @ に置き換えることができないのですか?


私は vue-cli を使って Vue プロジェクトを初期化しました。src フォルダでは @ を使うことができますが、__tests__ フォルダでは機能しません。tsconfig.json ファイルに設定はすでに追加しましたが、これがこの状況に対応しているかどうかはわかりません。

"paths": {
  "@/*": ["src/*"]
},

回答 #1

テストフレームワークもパスエイリアスで設定する必要があります。tsconfig.json や vue.config.js(またはその他の設定ファイル)で自動的に設定されるわけではありません。

Jestでパスエイリアスを設定するには、moduleNameMapperオプションを使用します:

// <projectRoot>/jest.config.js
module.exports = {
  moduleNameMapper: [
    '^@/(.*)$': '<rootDir>/src/$1'
  ]
}

これは通常、@vue/cli-plugin-unit-jest を使用している場合に自動的に設定されますが、プラグインを使わずに自分で Jest をセットアップした場合は、上記の設定が必要になります。