web-dev-qa-db-ja.com

インポート内に新しい行を置くEslintルール

この場合、私が探しているルールはエラーを示すはずです。

import {MY_CONSTANT1, MY_CONSTANT2, MY_CONSTANT3}

この場合は問題ないと見なされます。

import {
   MY_CONSTANT1, 
   MY_CONSTANT2, 
   MY_CONSTANT3
}

そのようなエスリントのルールはありますか?

6
Anna

私は解決策を探していましたが、残念ながらあなたの質問しか見つかりませんでした。私はeslintがどのように機能するか、そしてあなた自身のプラグインを作成して私のものを作成する方法について少し学ぶことに決めました。解析済みのASTノード構造がわかっている場合は、操作が非常に簡単です。プラグインのメインファイルを次に示します。Autofixはよりトリッキーですが、フォーマットに偏っているので含めません。標準。

module.exports = {
  rules: {
    'single-import-per-line': {
      create (context) {
        return {
          ImportDeclaration(node) {
            if (node.specifiers.length < 2) {
              return;
            }

            let previousImport = node.specifiers[0];
            for (let i = 1; i < node.specifiers.length; i++) {
              const currentImport = node.specifiers[i];

              // Omit the first condition if you want to put default imports on a new line as well
              if (previousImport.type !== 'ImportDefaultSpecifier'
                && currentImport.loc.start.line === previousImport.loc.end.line
              ) {
                context.report({ node, message: 'Your message' });
                return;
              }

              previousImport = currentImport;
            }
          },
        };
      },
    },
  },
};
1

輸入申告と輸出申告の両方にこのようなルールを探していました。その結果、私は plugin をautofixで作成しました。

したがって、プラグインはコードを変換します

import { k1, k2 } from 'something'

import {
  k1,
  k2
} from 'something'

とコード

export { name1, name2, nameN }

export {
  name1,
  name2,
  nameN
}
1
Anton Antonov

多分あなたはそのようなエラーを避けるために中括弧の中にスペースを使うべきです

import { MY_CONSTANT1, MY_CONSTANT2, MY_CONSTANT2 }

object-curly-spacing ルールについて読むことができます。

0
Сергей

あなたはこれを試すことができます

"semicolon": [true, "always"]
0
Arvind