KJ DEV
How to

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

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

現在はGatsbyでブログを構築していません

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

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

目次
  1. gatsby-node.jsにwebpackの設定を追加する
  2. TypeScriptを使う場合はtsconfig.jsonも設定

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


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

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

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

1
2
3
4
5
6
7
8
9
10
11
const resolve = require('path').resolve

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

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

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

TypeScriptを使う場合はtsconfig.jsonも設定

GatsbyでTypeScriptを使っている場合はtsconfig.jsonのbaseUrlとpathsを下記のように設定します。

1
2
3
4
5
6
7
8
{
  "compilerOptions": {
    "baseUrl": "./",
    "paths": {
      "@/*": ["./src/*"]
    }
  }
}

これでVSCodeなどエディタでの補完も有効にできます。

開発で参考になった本

実際に読んでみて開発に役立った本を紹介しています。

これから本格的にデザインシステムを学んで作りたい時にとても参考になる一冊でした。デザインシステムついて幅広く触れられているけど、「tailwindを触ってデザインシステムに興味を持った」という人でも少しずつ取り入れやすいです。