🐱
Gatsby.js + Scss(Sass) + Storybookの環境設定
セットアップ手順
※ 最終的に全部入っていれば問題ないので実行順は順不同
以下手順
Storybook のインストール
-
公式の手順に従ってコマンドを実行すればインストール可能
npx sb init --builder webpack5
Scss(Sass)環境のセットアップ
-
Scss(Sass)関連パッケージのインストール
yarn add -D css-loader sass sass-loader style-loader
-
Gatsby.js の Sass プラグインのインストール
yarn add -D gatsby-plugin-sass
-
gatsby-config.ts の編集
plugins にインストールした"gatsby-plugin-sass" を追加
plugins: ["gatsby-plugin-sass"];
-
Storybook の Scss アドオンのインストール
yarn add -D @storybook/preset-scss
-
.storybook/main.js の編集
module.exports = { addons: ["@storybook/preset-scss"], };
Storybook に Gatsby.js を対応させる。
-
.storybook/main.js の編集
公式の方法だと StaticQuery が処理されないので Gatsby.js の Issue を参考に修正
module.exports = { webpackFinal: async (config) => { config.module.rules[0].exclude = [/node_modules\/(?!(gatsby)\/)/]; config.module.rules[0].use[0].options.plugins.push([ require.resolve("babel-plugin-remove-graphql-queries"), { stage: config.mode === `development` ? "develop-html" : "build-html", staticQueryDir: "page-data/sq/d", }, ]); return config; }, };
-
.storybook/preview.js の編集
import { action } from "@storybook/addon-actions"; global.___loader = { enqueue: () => {}, hovering: () => {}, }; global.__BASE_PATH__ = "/"; (window as any).___navigate = (pathname) => { action("NavigateTo:")(pathname); };
作成したリポジトリ
参考
Gatsby.js プロジェクトへの Storybook のインストール
Gatsby.js プロジェクトの Scss(Sass)サポートの追加
Storybook の Scss(Sass)サポートの追加
Stroybook の Gatsby.js サポート追加
Discussion