textlintの設定をnpmにあげて使い回す
textlint 6.2.0でSharable Configの機能を追加しました。
これは.textlintrc
の中身をnpmパッケージとして公開して、使うときはtextlint --config @azu/textlint-config
のようにパッケージを指定して使えるという機能です。
簡単にいうと設定を共有する機能です。
ESLintのやつと基本的に同じですが、ESLintと違って"extend"
での設定ファイルの継承は対応してません。
多分JavaScriptとしてやった方が良さそうな気がしていて実装してないです。(いい案があればIssueに下さい)
.textlintrc
はJavaScriptとして以下のような感じで書くことができます。
module.exports = {
rules : {
}
};
設定ファイルを公開する場合はmain
のスクリプトに.textlintrc
の設定をJavaScriptで書いてexportするだけです。
例えば、azu/textlint-config-readme: Sharable config for textlintは以下のファイルをpackage.jsonの”main”に指定しているだけです。
module.exports = {
rules: {
"no-todo": true,
"no-dead-link": true,
"alex": true,
"write-good": true,
"rousseau": true
}
};
pacakge.json
は次の通り
{
"name": "@azu/textlint-config-readme",
"repository": {
"type": "git",
"url": "git+https://github.com/azu/textlint-config-readme.git"
},
"author": "azu",
"email": "[email protected]",
"homepage": "https://github.com/azu/textlint-config-readme",
"license": "MIT",
"files": [
"src/",
"lib/"
],
"bugs": {
"url": "https://github.com/azu/textlint-config-readme/issues"
},
"version": "1.0.2",
"description": "textlint config module for writing readme",
"main": "textlint-config.js",
"directories": {
"test": "test"
},
"scripts": {
"test": "textlint -c ./textlint-config.js ./*.md"
},
"keywords": [
"textlint",
"config"
],
"dependencies": {
"textlint-rule-alex": "^1.0.1",
"textlint-rule-common-misspellings": "^1.0.1",
"textlint-rule-no-dead-link": "^0.2.0",
"textlint-rule-no-todo": "^2.0.0",
"textlint-rule-rousseau": "^1.4.1",
"textlint-rule-write-good": "^0.1.4"
},
"devDependencies": {
"textlint": "^6.2.0"
}
}
使うときは
npm install -D @azu/textlint-config-readme textlint
でインストールして
$(npm bin)/textlint --config @azu/textlint-config-readme README.md
--config
にパッケージ名を指定するだけです。
具体的には以下を見てみてください。
- azu/textlint-config-readme: Sharable config for textlint
- README.mdのチェック用のルールを適当にまとめた
- textlint/configuring.md at master · textlint/textlint
Scoped module(@azu/abc
のような形式)も対応してるので、自分の名前空間なら気軽に公開できて便利です。
お知らせ欄
JavaScript Primerの書籍版がAmazonで購入できます。
JavaScriptに関する最新情報は週一でJSer.infoを更新しています。
GitHub Sponsorsでの支援を募集しています。