📑
Node.js コアモジュール の import/require の node schema を強制する ESLint ルール
メモ。
Node.js のコアモジュールを import/require するときは node
schema をつけることができる。
const fs = require("node:fs");
const path = require("node:path");
それ自体の概要については公式ドキュメントや@yosuke_furukawaさんのブログ記事を読んでほしい。
ここから本題。
筆者はこの機能は便利なので使っていくべきだという立場である。しかし普通にコードを書いていると忘れてしまうので ESLint で強制しよう。
eslint-plugin-unicorn
eslint-plugin-unicorn は Sindre Sorhus によって開発されている ESLint プラグインである。このプラグインは何か特定のライブラリやフレームワークのためのものではなく、一般的な JavaScript を使った開発(特に Node.js)において便利なルールが実装されたプラグインである。
eslint-plugin-unicorn/prefer-node-protocol
eslint-plugin-unicorn には prefer-node-protocol
というルールが存在する。これを有効にしておくと、Node.js コアモジュールを import するときに node
schema をつけ忘れたら ESLint が警告してくれる。
.eslintrc
はこんな感じになる。
{
"plugins": ["unicorn"],
"rules": {
"unicorn/prefer-node-protocol": "error"
}
}
なお、このルールはデフォルトでは import に対してのみ機能し require に対しては機能しない。require に対しても警告を出したい場合は checkRequire
オプションを有効にする必要がある。
{
"plugins": ["unicorn"],
"rules": {
+ "unicorn/prefer-node-protocol": ["error", {"checkRequire": true}]
}
}
Discussion