👏

TypescriptなReact+Vite環境を作った上でlint環境を整備しさらにstorybookをぶち込む手順

2022/01/29に公開

ここ最近掲題の環境を構築することが2,3回あり、毎度Historyからコマンドを探しているんですが もう調べるのがめんどくさい ので手順を書き残しておこうと思います。

本記事中、ファイルの注釈がない項目は全てコマンドです。
まとめてコマンドコピーしたいのに、terminalであることを示すための $ があるせいで1行1行コピーしなければならなくなる、なんていう状態が許せないので $ を省略しています。

React+Vite+linter環境構築

まずReact+Vite+linter環境構築を構築します。

パッケージ管理は一貫して yarn を使います。
宗派の問題などあるかと思いますが、今回は省略しますのでご容赦ください。
※一部npx使ってます

コマンド

mkdir {project-name}
cd {project-name}
yarn create vite . --template react-ts
yarn add -E -D eslint prettier react-app \n
@typescript-eslint/{eslint-plugin,parser} \n
eslint-config-(prettier,react-app} \n
eslint-plugin-{import,jsx-a11y,prettier,react,react-hooks}
npx sb init --builder storybook-builder-vite

lintファイル群

.eslintrc.js
module.exports = {
  parser: '@typescript-eslint/parser',
  env: {
    browser: true,
    es2021: true,
  },
  extends: ['react-app', 'prettier'],
  parserOptions: {
    ecmaFeatures: {
      jsx: true,
    },
    ecmaVersion: 12,
    sourceType: 'module',
  },
  plugins: ['prettier'],
  rules: {
    'prettier/prettier': 'error',
  },
};
.prettierrc.json
{
  "printWidth": 150,
  "useTabs": false,
  "semi": true,
  "singleQuote": true
}
.editorconfig
root = true

[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false

storybookの導入

vite環境で動く用のsbを入れていきます。

npx sb init --builder storybook-builder-vite

出てくる確認は全て y またはEnterしてください。
(sbインストールするか確認、linterのpluginのインストールと設定追記していいかの確認が出てくると思います。)

precommit

precommitを導入するにはこちらの記事を参照していただければと思います。


以上で設定完了です。

Discussion