gatsbyでwebpackのaliasを設定する方法

このブログはReact製のジェネレーターツールGatsbyで作っています。

Webpackによってコンパイルされていますが、aliasの設定がデフォルトではされていないためimportのパスを書くのがつらい状態でした。

ずっと放置したくもなかったのでgatsbyでwebpackのaliasを設定する方法を調べてみました。

gatsby-node.jsにwebpackの設定を追加する

gatsby-node.jsでonCreateWebpackConfigというイベントが設定可能です。

ations.setWebpackConfigにwebpackの設定を渡せばデフォルトの設定に追加できるようになります。

もしsrcディレクトリを@に設定する場合は下記のように設定します。

const resolve = require('path').resolve

exports.onCreateWebpackConfig = ({ actions }) => {
  actions.setWebpackConfig({
    resolve: {
      alias: {
        '@': resolve(__dirname, 'src')
      }
    }
  })
}	

これでimportのパス指定が一気に楽になります。

import Button from '@/components/Button'  // src/components/Button.jsx

tsconfig.json

{
  "compilerOptions": {
    "baseUrl": "./",
    "paths": {
      "@/*": ["./src/*"]
    }
  }
}
この記事をシェアする
コウジ
Vue.jsが好きなフリーランスのフロントエンドエンジニアです。 フロントのHTML・CSS・JavaScriptの設計実装をメインに、RubyとNodeでサーバーサイドやってたりもします。
Nuxt.jsを身につけたい!
Nuxt.jsビギナーズガイド―Vue.js ベースのフレームワークによるシングルページアプリケーション開発

開発依頼

VueやReactを用いたSPAアプリケーションの開発を中心にフロントエンド開発のプロジェクトをお手伝いさせていただいております。
開発事例の詳細などはAboutの開発事例をご覧ください。

Contactよりお気軽に必要事項をご入力の上ご連絡ください。