Gruntjs jshint grunt导出选项

Gruntjs jshint grunt导出选项,gruntjs,jshint,Gruntjs,Jshint,嗨,我正在努力实现以下目标。我正在使用grunt进行jshint验证 在我使用过的文件中的某个地方: var logger = function () { // some ode } 因为记录器从未实际使用过,所以jshint向我正确显示了以下错误 W098: 'logger' is defined but never used. 我可以将unused设置为false,这样就可以完美地工作。但我实际上希望该选项发生在其他文件中,并警告我未使用的变量。所以这个没用的选项对我不起作用 我还发现

嗨,我正在努力实现以下目标。我正在使用grunt进行jshint验证

在我使用过的文件中的某个地方:

var logger = function () {
 // some ode
}
因为记录器从未实际使用过,所以jshint向我正确显示了以下错误

W098: 'logger' is defined but never used.
我可以将unused设置为false,这样就可以完美地工作。但我实际上希望该选项发生在其他文件中,并警告我未使用的变量。所以这个没用的选项对我不起作用

我还发现我可以使用这样的内联注释: *导出库*/

但实际上,我更愿意避免这些评论把我的文件弄得乱七八糟。我是否有可能在grunt文件中指定一个导出选项,就像我可以为globals指定选项一样

以下是我的GrunFile的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 repository上提出了一个问题

我认为您可以排除src文件中的文件,这样您就可以从基本linting中排除日志文件(我假设这里的日志文件是logger.js),并在禁用unused标志的情况下单独lint日志文件

了解更多->“!在模式开头将否定匹配”

您可以设置cwd(并保留join内容)。有关更多信息,请参见文档:


不是100%确定这是否有效,但我认为它至少应该引导你进入正确的方向。如果您需要指定一个路径,而不仅仅是一个要排除的文件,您可以将记录器文件放在一个单独的文件夹中,只需排除该文件夹即可

我认为您可以排除src文件中的文件,因此您可以从基本linting中排除记录器文件(我假设记录器文件在这里是logger.js),并在禁用unused标志的情况下单独lint记录器文件

了解更多->“!在模式开头将否定匹配”

您可以设置cwd(并保留join内容)。有关更多信息,请参见文档:


不是100%确定这是否有效,但我认为它至少应该引导你进入正确的方向。如果您需要指定一个路径,而不仅仅是一个要排除的文件,您可以将记录器文件放在一个单独的文件夹中,只需排除该文件夹即可

这是最近修复的,现在可以正常工作了

作为一个例子,我在Grunfile中使用它

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存储库复制最新版本,并替换当前模块中的版本,或者等待更新。

这是最近修复的,现在可以正常工作

作为一个例子,我在Grunfile中使用它

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存储库复制最新版本,并替换当前模块中的版本,或者等待更新。

您好,谢谢您的回复。我对cwd并不陌生,谢谢你。虽然我很确定你的解决方案应该有效,但它不是很优雅。我正在考虑与您提到的相同的问题,但我想我会有越来越多的文件,比如logger.js,我不想指定所有这些单独的文件。但我必须看看是否有其他选择。我真的希望有一个像exported:{//exported variables}这样的选项,因为它适用于globalsHi。感谢您的回复。我对cwd并不陌生,谢谢你。虽然我很确定你的解决方案应该有效,但它不是很优雅。我正在考虑与您提到的相同的问题,但我想我会有越来越多的文件,比如logger.js,我不想指定所有这些单独的文件。但我必须看看是否有其他选择。我真的希望有一个像exported:{//exported variables}这样的选项,因为它适用于全局变量