01
昨今のJavaScript開発ではBabelやESLintなどのツールがよく使われるが、これらのツールを複数使用すると.babelrc
や.eslintrc
などの設定ファイルがリポジトリのルートディレクトリに複数存在することとなる。
ツールの数が増えると設定ファイルも増えるので、管理するファイルが増える。そこで、いくつかのツールはpackage.json
に設定を記述できるので、これを利用すると個別の設定ファイルを作成せずに済む。
Babel
Babelはbabel
という名前でフィールドを作成すると読み込まれる。
{
"babel": {
"presets": [
"es2015"
]
}
}
参考ページ:Use via package.json
ESLint
ESLintはeslintConfig
という名前でフィールドを作成すると読み込まれる。
{
"eslintConfig": {
"extends": "eslint:recommended"
}
}
参考ページ:Configuring ESLint
PostCSS CLI
PostCSS CLIはpostcss
という名前でフィールドを作成すると読み込まれる。
PostCSS CLIが対応している(正確にはPostCSS CLIが使用しているpostcss-load-configが)のであって、PostCSS本体は対応していないようだ。
{
"postcss": {
"from": "/path/to/src.css",
"to": "/path/to/dest.css"
}
}
参考ページ:postcss-load-config#packagejson
stylelint
stylelintはstylelint
という名前でフィールドを作成すると読み込まれる。
{
"stylelint": {
"extends": "stylelint-config-standard"
}
}
参考ページ:Loading the configuration object
browserslist
browserslistはbrowserslist
という名前でフィールドを作成すると読み込まれる。
Autoprefixerやbabel-preset-envなどのモジュールがこれを使用している。
{
"browserslist": [
"last 2 Chrome versions",
"last 2 Firefox versions"
]
}
参考ページ:browserslist#browserslist
browserslist
フィールドとbabel-preset-env
の設定を含んだbabel
フィールドはどちらが優先されるかは不明。
設定を読み込むモジュール
設定を読み込むモジュールには以下のようなものがある。上記のツールの多くはcosmiconfigを使用している。
- davidtheclark/cosmiconfig
- azu/rc-config-loader
- textlintが使用している
- MoOx/rc-loader
- メンテナンスされていない
- cosmiconfigに代わられた