1

こんにちは私は次のことを達成しようとしています。jshintの検証にgruntを使用しています。

私が使用したファイルのどこか:

var logger = function () {
 // some ode
}

ロガーが実際に使用されることはないため、jshint は正しく次のエラーを表示します。

W098: 'logger' is defined but never used.

未使用を false に設定すると、完全に機能します。しかし、実際には、オプションを他のファイルで実行し、未使用の変数について警告する必要があります。したがって、未使用のオプションは機能しません。

また、次のようなインライン コメントを使用できることもわかりました。 * export EXPORTED_LIB */

しかし、実際には、そのようなコメントでファイルが乱雑になるのは避けたいと思っています。たとえば、グローバルの場合と同じように、grunt ファイルでエクスポートされたオプションを指定できる可能性はありますか。

私のgruntfileのjshint部分は次のとおりです。

jshint: {
        // global options
        options: {
            camelcase: true,
            curly: true,
            eqeqeq: true,
            forin: true,
            immed: true,
            indent: 4,
            latedef: true,
            newcap: true,
            noarg: true,
            nonew: true,
            plusplus: false,
            quotmark: 'single',
            undef: true,
            unused: true,
            strict: true,
            maxparams: 4,
            maxdepth: 4,
            trailing: true,
            maxlen: 120,
            browser: true,
            node: true
        },
        server_logger: {
            src: [BASE_PATH_SERVER_LOGGER, '/**/*.js'].join(''),
            options: {
                browser: false
            }
        },
        client_logger: {
            src: [BASE_PATH_CLIENT_LOGGER, '/**/*.js'].join(''),
            options: {
                node: false,
                devel: true
            }

        }
    }

御時間ありがとうございます。

よろしくPlayerwtf

更新:ここで jshint github リポジトリに関する問題を作成しました

4

2 に答える 2

1

これは最近修正され、期待どおりに機能するようになりました。

github-issue

例として、私の gruntfile でこのように使用します

client_logger: {
    expand: true,
    cwd: BASE_PATH_CLIENT_LOGGER,
    src: '**/*.js',
    options: {
        node: false,
        devel: true,
        globals: {
            logger: true,
            expect: true,
            it: true,
            describe: true,
            beforeEach: true,
            afterEach: true
        },
        exported: ['logger']
    }
}

しかし、npm モジュールはまだ更新されていません。これを機能させたい場合は、jshint github リポジトリから最新バージョンを手動でコピーし、現在のモジュールのバージョンを置き換えるか、更新されるまで待つ必要があります。

于 2013-06-20T18:30:51.440 に答える
0

srcファイル内のファイルを除外できると思うので、ロガーファイルを基本的なlintから除外し(ここではロガーファイルはlogger.jsだと思います)、unused-flagをオフにしてロガーファイルを個別にlintできます。

詳細については、こちらをご覧ください-> 「パターンの先頭にある ! は、一致を無効にします」

あなたはcwdを設定することができます(そして結合のものを残すことができます)。詳細については、ドキュメントを参照してください:ファイル オブジェクトを動的に構築する

jshint: {
    // global options
    options: {
        ... your global options here
    },
    server_logger: {
        options: {
            browser: false
        },
        files: [{
          cwd: BASE_PATH_SERVER_LOGGER,
          src: ['/**/*.js', '!logger.js']
        }]
    },
    client_logger: {
        options: {
            node: false,
            devel: true
        },
        files: [{
          cwd: BASE_PATH_CLIENT_LOGGER,
          src: ['/**/*.js', '!logger.js']
        }]
    },
    lint_logger: {
        options: {
            unused: false
        },
        files: [{
          src: ['logger.js']
        }]
    }
}

それが機能するかどうか100%確信があるわけではありませんが、少なくとも正しい方向に導くはずです. 除外するファイルだけでなくパスを指定する必要がある場合は、ロガーファイルを別のフォルダーに配置して、そのフォルダーを除外するだけです!

于 2013-06-05T11:18:25.467 に答える