webpack + typescriptでpathsのエイリアスがModule not foundになる

公開日時
更新日時

typescript + webpackの環境をゼロから構築した際に、tsconfig.jsonに以下のように~と@のエイリアスを設定した。

{
  "compilerOptions": {
    "baseUrl": "./src",
    "paths": {
      "~/*": ["./*"],
      "@/*": ["./*"]
    },
  }
}

が、ビルド時に以下のエラーになってしまった。

Module not found: Error: Can't resolve '~

ts-loaderのREADMEにtsconfig-paths-webpack-pluginを使う必要があると書かれていたのでpluginを追加。

yarn add -D tsconfig-paths-webpack-plugin
  • webpack.config.tsを更新
import * as Webpack from 'webpack';
import { TsconfigPathsPlugin } from 'tsconfig-paths-webpack-plugin';

const config: Webpack.Configuration = {
  resolve: {
    extensions: ['.ts', '.js'],
    plugins: [new TsconfigPathsPlugin({ configFile: './tsconfig.json' })]
  },
};

export default config;

これでエイリアスを使ったimportができるようになった。

import app from '~/app';

vue createやcreate nuxt-appの場合はこの辺をいい感じにやってくれているので、いざ自分で構築しようとするとハマる。

参考


Related #js

AWS SESの受信メールを暗号化してs3に保存しLambdaで読み込む

jsの場合、複合処理を独自実装する必要がある

Next.jsのPreview Mode時はAnalyticsを無効化する

cookieの__next_preview_dataキーで判定

Next.js 11

手軽にアップグレードできた

VSCode Remoteで新規ファイルを作った際にTypescriptのPathが認識されない問題

「Ctrl + Shift + P」でコマンドパレットを開いて「Reload Window」を実行