0

誰かが特定のコード構造を使用しているかどうかを確認するために、ESLint のカスタム ルールを作成する必要があります。私はESLintを初めて使用し、ルールの登録に問題があるため、.eslintrc構成ファイルで実際に使用できます。ルール自体は次のようになります。

some-custom-rule.js

'use strict';

module.exports = function(context) {

  function applyRule(node) {
    // some logic
  }

  return {
    "Identifier": applyRule
  }
};

module.exports.schema = [];

次に、次の構成ファイルがあります。

.eslintrc

{
  "ecmaFeatures": {
    "blockBindings": true,
    "forOf": true,
    "modules": true,
    "arrowFunctions": true,
    "classes": true
  },
  "rules": {
    "semi": 2,
    "some-custom-rule": 2
  },
  "env": {
    "es6": true,
    "browser": true
  }
}

Gulp タスクで ESLint を実行しようとすると、次のエラーが表示されます: 1:1 error Definition for rule 'some-custom-rule' was not found. これは、ルールを適切に要求しなかったためだと思います。

Gulp タスクは次のとおりです。

var gulp   = require('gulp');
var path = require('path');
var conf = require('./conf');
var eslint = require('gulp-eslint');
var rule = require('./rules/some-custom-rule');

gulp.task('eslint', function () {
  return gulp.src(path.join(conf.paths.src, '**/*.js'))
    .pipe(eslint())
    .pipe(eslint.format())
    .pipe(eslint.failAfterError());
});

カスタム ルールを利用するにはどうすればよいですか? ESLintなどに渡す必要がありますか? 前もって感謝します!

4

1 に答える 1

0

現在、ESLint にルールを登録する方法は 2 つあります。--rulesdirコマンドライン フラグを使用して、カスタム ルールが配置されているディレクトリに渡すことができます。これを行うと、そのディレクトリ内のすべてのルールが自動的に ESLint に登録されます。ただし、この方法は非推奨です。より良い方法はplugin、NPM モジュールを介してルールのバンドルを配布する方法である を作成することです。プラグインの作成の詳細については、こちらを参照してください。

于 2015-11-16T02:01:14.380 に答える