ESLintがv2にアップデートしてからけっこう変わって、だましだましv1系の設定をいじりながら使い続きてたけどだいぶカオスになってきたので気合入れて書き直した。
せっかく気合入れて書いたのでプロジェクトを横断して設定を共有できるようにしたい。
ESLintの設定を使い回すのはいくつか方法が考えられる。
- プロジェクトごとにコピペする
- npmモジュールにしてextendする
さらにnpmモジュールとして利用するのはいくつか方法があって、
-
eslint-config-hokaccha
みたいにグローバルな名前でnpmにpublishして使う - scoped packageとして
@hokaccha/eslint-config
みたいな名前でnpmにpublishして使う - githubに置いといて
npm install hokaccha/eslint-config
みたいにして使う
たぶん1が一番メジャーな方法で、eslint-config-airbnbとかeslint-config-standardあたりが有名どころ。そうすると.eslintrc
では
{
"extends": "airbnb"
}
みたいにするだけでその設定を使いまわせる。
なのでeslint-config-hokaccha
みたいな名前でpublishしてもいいんだけど、グローバルなネームスペースに個人の設定あげるのも何か気が引ける(個人の名前でpublishしてる人もけっこういるしそんなに問題にはならないと思うけど気持ちの問題)。
そこでscoped packageでpublishすることにした1。scoped packageについてはazuさんの記事を参照のこと。
npmで名前空間を持ったモジュールを公開する方法(scoped modules) | Web Scratch
こんな感じでnpmにpublishした。
インストールして
$ npm install --save-dev eslint @hokaccha/eslint-config
extendするだけ。
{
"extends": ["@hokaccha/eslint-config"]
}
これで気合入れて書いた設定を共有できるしアップデートにも追従できる。便利。
-
知らなかったんだけどteppeisさんに教えてもらった ↩