Closed5

ESLintの共通ルール(ライブラリ)を書くときのメモ

kimromikimromi

@scope付きの場合

ライブラリ名: @hoge/eslint-config

{
  extends: "@hoge"
} 

はeslint-configを省略して書ける。

ライブラリ名: @hoge/eslint-config-fuga

{
  extends: "@hoge/fuga"
} 

とは書けない。

kimromikimromi
"peerDependencies": {
    "eslint": ">= 3"
}

のようにpeerDependenciesに書いておくことで利用側でeslintが必要なことを示しておくことができる。利用側でnpm installに警告がでるようになる。

peerDependenciesはこちらがわかりやすかった。dependenciesに書いてしまうとライブラリの方が依存バージョンが高い場合に利用側のバージョンが無視されてバージョンが上がってしまう。
https://qiita.com/cognitom/items/acc3ffcbca4c56cf2b95

kimromikimromi

ライブラリ側でルールを変えながら別の利用側で動作確認したいときに npm link が便利。
ライブラリ側で npm link を実行するとローカルのglobalのnode_modules/にシンボリックリンクが貼られて、利用側で npm link eslint-config-hoge を実行すると利用側のnode_modules/eslint-config-hoge/が手元で修正しているライブラリのディレクトリにシンボリックリンクでつながる。

ライブラリ側のルール変更が即反映されるので動作確認しやすい。

このスクラップは2021/07/25にクローズされました