Gridsome 開発環境整備
パッケージ管理には
npm
ではなくyarn
を使うので、
npm
派の場合は適宜読み替えてくださいGridsome のプロジェクトに Eslint+Prettier をインストールして開発環境を整備していきます
Gridsome とは
- Gridsomeは Vue.js ベースの Jamstack フレームワーク
- React ベースの静的サイトジェネレータである Gatsby にインスパイアされている
- データ層では Gatsby と同じく GraphQL を使う
- 現在公開されている Gridsome 用のプラグインは Gatsby 用プラグインからの移植のものも多いらしい
Jamstack とは
- Jamstack って何なの?何がいいの? - Qiitaを参考に…
- Jamstackの jam は Javascript/APIs/Markup の頭文字
- ビルド時に API などを通じて動的にデータを取得して静的なコンテンツを生成するので高速かつ堅牢
Gridsome プロジェクト作成
Introduction - Gridsomeの通り進めていく
Gridsome CLI ツールのインストール
yarn global add @gridsome/cli
プロジェクト作成
gridsome create ${PROJECT_NAME}
Git 管理
cd ${PROJECT_NAME} git init git add . git commit
- 自動的には
git init
されないので…
- 自動的には
Eslint+Prettier インストール
Vue CLI で Eslint を有効にして作成したプロジェクトやGridsome に ESLint、Prettier を導入する | K noteを参考にする
yarn add -D eslint prettier eslint-plugin-prettier eslint-config-prettier eslint-plugin-vue eslint-plugin-gridsome babel-eslint
Package | Description |
---|---|
eslint | JavaScript の静的解析ツール |
prettier | JavaScript のコードフォーマッタ |
eslint-plugin-prettier | Prettier を Eslint のルールとして実行する |
eslint-config-prettier | 不要なルール、Prettier と競合する可能性のあるルールをオフにする |
eslint-plugin-vue | Vue.js 公式の Eslint プラグイン |
eslint-plugin-gridsome | Gridsome 用の Eslint プラグイン |
babel-eslint | 実験段階または非標準の Javascript 構文に Eslint を対応させる |
- Eslint にもコードフォーマッタ機能はついているが、Prettier の方が高機能なので併用する
eslint-plugin-prettier
について- いつのまにか eslint-plugin-prettier が推奨されないものになってた | K noteで言及されている通り
eslint-plugin-prettier
は非推奨らしい(原文:Integrating with Linters · Prettier) - 気になるようなら対応しましょう(少し試してみて lint 結果にピンとこなかったので今回は対応しませんでした)
- いつのまにか eslint-plugin-prettier が推奨されないものになってた | K noteで言及されている通り
babel-eslint
についてbabel-eslint
は@babel/eslint-parser
にアップデートされているので、これも気になるようなら対応しましょう
Eslint, Prettier のコンフィグ作成
.eslintrc.js
作成- ここも Vue CLI で Eslint を有効にして作成したプロジェクトやGridsome に ESLint、Prettier を導入する | K noteを参考にする
module.exports = { root: true, env: { node: true, }, extends: [ "plugin:vue/essential", "plugin:gridsome/recommended", "plugin:prettier/recommended", "eslint:recommended", ], parserOptions: { parser: "babel-eslint", }, rules: { "no-console": process.env.NODE_ENV === "production" ? "warn" : "off", "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off", }, };
plugin:vue/recommended
だと Lint が少しきつかったのでplugin:vue/essential
にしていますextends
の順番でルールの適用順が変わるので適宜調整してください
.prettierrc.js
作成(適宜)- 必要あればConfiguration File · Prettierを参考に設定する
Lint コマンドの追加
Gridsome + Eslint: the complete Guideを参考に Vue CLI のプロジェクトと同様にyarn lint
で Lint できるようにする
Vue CLI インストール
yarn add -D @vue/cli-service @vue/cli-plugin-eslint
package.json
編集"scripts": { "build": "gridsome build", "develop": "gridsome develop", "explore": "gridsome explore", "lint": "vue-cli-service lint" },
実行
yarn lint