🧭

Next.js & TypeScript & scss & Storybookでのセットアップ自分用メモ

2021/06/08に公開

忘れないようにメモメモ。。

1.Next.jsで始める

(1)npm init next-app directory-name
directory-nameは、任意の名前。

※localhost3000を変えたい場合

package.json
"script"{
- "dev":"next dev"
+ "dev":"next dev -p 1000"

(2)yarn dev
localhostが立ち上がれば、おっけっけ!

2. TypeScript導入

(1)yarn add --dev typescript @types/node @types/react @types/react-dom

(2)pages内のjsファイルを"tsx"に変更

(3)一度、yarn devを終了し、再起動。
tsconfig.jsonファイルが出来きたら、おっけっけ!

2-1. prettierの設定 (;はいらないので消したいのと、tabの幅を2に)

(1).prettierrc 作成

.prettierrc
{ "semi": false, "trailingComma": "all", "singleQuote": true, "printWidth": 100, "tabWidth": 2 }

3. Sass 導入

(1)yarn add sass

(2)拡張子をscssに。
・pagesのimportパス
・stylesのglobalsとHome.module

4. Storybook 導入

(1)npx sb init
・stories削除
・以下変更

.storybook/main.js
module.exports = {
  stories: ['../components/**/*.stories.@(js|jsx|ts|tsx)'],
  addons: [
    '../components/**/*.stories.@(js|jsx|ts|tsx)',
  ],

  webpackFinal: async (baseConfig) => {
    // scss を読み込む
    baseConfig.module.rules.push({
      test: /\.scss$/,
      use: [
        'style-loader',
        {
          loader: 'css-loader',
          options: {
            importLoaders: 1, // 1 => postcss-loader
            modules: {
              localIdentName: '[local]___[hash:base64:2]',
            },
          },
        },
        'sass-loader',
      ],
    })
    return { ...baseConfig }
  },
}

(2)@zeit/next-sass インストール
yarn add @zeit/next-sass node-sass

(3)CSS Modulesにする
next.config.js作成

next.config.js
const withSass = require('@zeit/next-sass');
module.exports = withSass({
	cssModules: true,
});

(4).storybook内追加・変更

preview-body.html
<style>
  body {
    padding: 0;
    margin: 0;
  }
</style>
<link rel="stylesheet" href="styles/globals.scss" />
.storybook/preview.js
export const parameters = {
  actions: { argTypesRegex: '^on[A-Z].*' },
  controls: {
    matchers: {
      color: /(background|color)$/i,
      date: /Date$/,
    },
  },
  layout: 'fullscreen',
}

(5)画像を表示できるようにする

package.json
"scripts": {
-"storybook": "start-storybook -p 6006",
+"storybook": "start-storybook -s ./public -p 6006",
}

(6)yarn storybook
で立ち上がるはず!

5. おわり!

あとは、Githubで、リポジトリを作成して、案内通りに
git init
git add -A
git commit -m "first commit"
git branch -M main
git remote add origin url
git push -u origin main

これで自分的には再現可能。

Discussion