モノレポのリポジトリ内のフロントエンドプロジェクトにhuskyの設定を追加する
npmパッケージのhuskyがv5系
以降の使い方がそれまでと異なっています。
モノレポのリポジトリ内の中でフロントエンド用のプロジェクト(vue-cliやcreate-react-appなど)にのみhusky
の設定を適用しlint-staged
を実行する方法をまとめます。
名前 | バージョン |
---|---|
npm | 8.1.0 |
node | 16.13.0 |
yarn | 1.22.17 |
TypeScript | 4.4.4 |
ディレクトリ構成
root/
├ backendProject/
└ frontendProject/
frontendProject
=vue-cliやviteなどで作成したフロントエンドのプロジェクト
(package.jsonが置かれている。)
husky,lint-stagedのインストール
frontendProject
ディレクトリ内でhusky,lint-stagedのインストールを行います。
$ yarn add --dev husky lint-staged
package.jsonのsrcripts
にprepare
が追記されている為モノレポ用の設定として下記の通り修正します。
ダブルクォーテーションをエスケープしている箇所に注意してください。
"scripts": {
...(省略)
"prepare": "cd .. && husky install frontendProject/.husky",
"create-precommit": "cd .. && husky add frontendProject/.husky/pre-commit \"cd frontendProject && yarn lint-staged\"",
"lint-staged": "lint-staged"
},
frontendProjectディレクトリ内
に.huskyディレクトリ
を作成する為にyarn prepare
とyarn create-precommit
をそれぞれ実行します。
$ yarn prepare
$ yarn create-precommit
frontendProject/.husky
ディレクトリ内のpre-commit
ファイルが下記の様な内容で作成されます。
これでコミットをする直前にhusky経由でlint-staged
を実行する事が出来ます。
lint-staged
の設定はこれまで通りpackage.json
に記載して差し支えありません。
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
cd frontendProject && yarn lint-staged
nvmを利用している際の注意点
ローカルのnode.jsのバージョン管理にnvm
を利用している場合、huskyが動く際に現在設定されているnodeのバージョンを取得出来ない場合があります。(husky経由でyarnコマンドが実行出来なくなる)
この場合、自分のホームディレクトリに~/.huskyrc
を作成してnvmの設定を追記する必要があります。
$ touch ~/.huskyrc
$ vim ~/.huskyrc
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
# 現在利用しているnodeバージョンをuseする
nvm use stable
これでhusky利用時にローカル環境と同様のnode.jsのバージョンを利用する事が出来ます。
Author And Source
この問題について(モノレポのリポジトリ内のフロントエンドプロジェクトにhuskyの設定を追加する), 我々は、より多くの情報をここで見つけました https://qiita.com/maejima_f/items/5eb8a4067e3aa6a3179d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .