質問: ### 前提・実現したいこと **前提** * ソースコードをGit管理して複数人で共同開発する * ESLint, stylelint, Prettierでコードの品質管理をする * 複数プロジェクト(別のリポジトリ)でも共通のESLint, stylelint, Prettierの設定を使いたい * メンバーはそれぞれ異なるエディタを使用している * メンバーにはWindowsの人もMacOSの人もいる * 設定は同じなのに毎回プロジェクトごとに $ npm install したくない * 設定をメンバーと共有できないのでグローバルインストールは避けたい --- **実現したいこと** * OSやエディタが異なるメンバーでもコードスタイルを統一して共同開発する * プロジェクト(リポジトリ)を跨いで使用できるリンターやフォーマッタの設定ファイルが欲しい (つまり、package.jsonやstylelintrc.json、node_modules等は1つだけにしたい) **以上を実現できる方法は存在するのでしょうか?** --- ### 考えた案 & 問題点 **考えた案1** package.jsonや.eslintrc.jsonなどコード品質管理に必要なものをまとめたリポジトリを作成し、各自クローンする。 そこで得たpackage.jsonを各プロジェクトより上の階層にシンボリックリンクを貼ってそこで $ npm install し、プロジェクトを跨いだ共通のnode_modulesを作成する。 **(問題点)** * メンバーの開発環境が異なるため各自で設定方法が異なるかもしれない(メンバーにはWeb初心者もいる) * エディタによってはVSCodeにあるようなESLintやPrettierのプラグインがないかもしれない --- **考えた案2** Gitのコミット前にpre-commit hookでリンターとフォーマッタを走らせる。 **(問題点)** * pre-commitは.gitディレクトリ配下にあるのでプロジェクトで共有できない。 * huskyを使えばhookを共有できるが結局プロジェクトディレクトリで $ npm install することになるのでは? --- ### 補足情報(使用ツール) * Node.js(npm) * Git * ESLint * Prettier * stylelint
回答: 普通にプロジェクトごとに分けたほうがいい。 一見便利なようで普通と違う使い方したら後で困るだけ。 コードスタイルは手元ではなくCIなどの段階で強制する。