Aton-Kish / Gridsome開発環境整備
Created 2020-10-17 13:19:02 Modified 2020-10-17

1240 Words

Gridsome 開発環境整備

パッケージ管理にはnpmではなくyarnを使うので、 npm派の場合は適宜読み替えてください

Gridsome のプロジェクトに Eslint+Prettier をインストールして開発環境を整備していきます

Gridsome とは

  • Gridsomeは Vue.js ベースの Jamstack フレームワーク
  • React ベースの静的サイトジェネレータである Gatsby にインスパイアされている
    • データ層では Gatsby と同じく GraphQL を使う
    • 現在公開されている Gridsome 用のプラグインは Gatsby 用プラグインからの移植のものも多いらしい

Jamstack とは


Gridsome プロジェクト作成

Introduction - Gridsomeの通り進めていく

  1. Gridsome CLI ツールのインストール

    yarn global add @gridsome/cli
    
  2. プロジェクト作成

    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
PackageDescription
eslintJavaScript の静的解析ツール
prettierJavaScript のコードフォーマッタ
eslint-plugin-prettierPrettier を Eslint のルールとして実行する
eslint-config-prettier不要なルール、Prettier と競合する可能性のあるルールをオフにする
eslint-plugin-vueVue.js 公式の Eslint プラグイン
eslint-plugin-gridsomeGridsome 用の Eslint プラグイン
babel-eslint実験段階または非標準の Javascript 構文に Eslint を対応させる

Eslint, Prettier のコンフィグ作成

  • .eslintrc.js作成

    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作成(適宜)


Lint コマンドの追加

Gridsome + Eslint: the complete Guideを参考に Vue CLI のプロジェクトと同様にyarn lintで Lint できるようにする

  1. Vue CLI インストール

    yarn add -D @vue/cli-service @vue/cli-plugin-eslint
    
  2. package.json編集

      "scripts": {
        "build": "gridsome build",
        "develop": "gridsome develop",
        "explore": "gridsome explore",
        "lint": "vue-cli-service lint"
      },
    
  3. 実行

    yarn lint