eslint-config-dublin-core
v1.1.0
Published
Dublin CoreのようなJSDocタグ(@dcterms:titleなど)を使用するための、共有可能なESLint設定ファイル。
Maintainers
Readme
eslint-config-dublin-core
Dublin Core(dcterms)をJSDocタグ(例: @dcterms:created)としてESLintのeslint-plugin-jsdocで使えるようにする、共有可能なESLint設定パッケージです。
特徴
Dublin Coreの用語(dcterms)を警告等なしにJSDocタグとして扱えるように、eslint-plugin-jsdocのdefinedTagsとstructuredTagsを自動生成してパッケージ化しています。
インストール
ESLint設定パッケージをプロジェクトに追加します。
npm install --save-dev eslint-config-dublin-corepeerDependenciesにeslintとeslint-plugin-jsdocを指定しています。プロジェクト側でそれらを用意してください。
使い方
このパッケージは2つのエントリーポイントをpackage.jsonのexportsで提供します。プロジェクトのESLint設定方式に合わせて使ってください。
Flat config(ESLint 8+の推奨)
ESLintのFlat Config(eslint.config.js / eslint.config.mjs)を用いる環境なら、import / requireで直接取り込めます。
// eslint.config.mjs
import jsdoc from "eslint-plugin-jsdoc";
import dublin from "eslint-config-dublin-core";
import { defineConfig } from "eslint/config";
export default defineConfig([
// 他の設定...
{
plugins: { jsdoc },
extends: [
jsdoc.configs["flat/recommended"]
]
},
...dublin
]);従来の.eslintrcを使う場合
このパッケージは .eslintrc.jsonも提供します。既存のプロジェクトなどで.eslintrcを使う場合は、extendsからマージしてください。
module.exports = {
// 他の設定...
plugins: ["jsdoc"],
extends: [
"plugin:jsdoc/recommended",
"dublin-core/eslintrc"
]
};※ Flat Configと従来形式は設定形式が異なるため、取り込み方に注意してください(pluginsが配列かオブジェクトかの違い等)。詳しくはESLintの公式ドキュメントを参照してください。
実行ファイル
Dublin CoreのJSDocタグのみを検証する実行ファイルがあります。
npx eslint-config-dublin-core実行ファイルは事実上以下のコマンドと同等です。
ESLINT_USE_FLAT_CONFIG=true npx 'eslint@>=8.26.0' --plugin jsdoc -c node_modules/.bin/eslint-config-dublin-coreタグ
使用できるタグは2025年10月12日現在DCMI Metadata Termsで定義されている全てのタグが使用できます。
使用できるタグの一覧はRDF(Dublin Core Terms)を解析して自動生成を行っています。dcterms:fooとdcterms-fooの両形式に対応しています。
タグの使用例
/**
* @file ツール用ユーティリティ
* @dcterms:creator Example Author
* @dcterms:created 2025-09-27
* @dcterms:modified 2025-10-01
* @dcterms:publisher ExampleOrg
* @dcterms:conformsTo https://262.ecma-international.org/
*//**
* Hello worldを表示する
*
* @returns {void}
* @dcterms-issued 2025-01-01
*/
export function hello_world() {
console.log("Hello world");
}