なっく日報

技術やら生活やらのメモ

ESLintのShareable Configsを利用して複数プロジェクトで設定を共有する

(会社|複数プロジェクト)でESLintの設定を共有したい!

ということがあると思いますが、ESLintにはShareable Configsという便利な機能があります。

eslint.org

これを使えば、簡単にそういったことができます。

利用法

モジュール名をつける

eslint-config-*という命名規則で名付けます。eslint-config-hogeなど。

index.jsを作成する

ESLintの設定を書いたファイルを作ります。

↓ESLintオススメ設定とNode.js v4のES6関連の設定が入ってます。

module.exports = {
  extends: 'eslint:recommended',

  env: {
    node: true,
  },

  ecmaFeatures: {
    arrowFunctions: true,
    binaryLiterals: true,
    blockBindings: true,
    classes: true,
    forOf: true,
    generators: true,
    objectLiteralComputedProperties:true,
    objectLiteralDuplicateProperties: false,
    objectLiteralShorthandMethods: true,
    objectLiteralShorthandProperties: true,
    octalLiterals: true,
    templateStrings: true,
  },

  rules: {
    'arrow-parens': [2, 'always'],
    'arrow-spacing': [2, { 'before': true, 'after': true }],
    'constructor-super': 2,
    'generator-star-spacing': [2, {'before': false, 'after': false}],
    'no-class-assign': 2,
    'no-const-assign': 2,
    'no-dupe-class-members': 2,
    'no-this-before-super': 2,
    'no-var': 2,
    'prefer-arrow-callback': 2,
    'object-shorthand': [2, 'methods'],
    'prefer-const': 2,
    'prefer-spread': 0,
    'prefer-reflect': 0,
    'prefer-template': 0,
    'require-yield': 2,
  }
};

ちなみにindex.jsはpackage.json"main"で指定されたファイルという前提です。

使いたいプロジェクトに追加

npm i -D git+ssh://git@github.com:hoge/eslint-config-hoge.git

でpackage.jsonのdevDependenciesに追加しつつ、インストール。

.eslintrcは

{
  "exntends": "hoge"
}

と書けば使えるようになります。

その他

github.com

の使い方も参考になるので見てみるとよいでしょう。