Command line 使用Grunt命令行覆盖JSHint选项

Command line 使用Grunt命令行覆盖JSHint选项,command-line,parameters,gruntjs,overriding,jshint,Command Line,Parameters,Gruntjs,Overriding,Jshint,打电话 grunt jshint:path_to_file 我想覆盖默认的JSHint配置 grunt.initConfig({ jshint: { options: { curly: true, eqeqeq: true, eqnull: true, browser: true, globals: {

打电话

grunt jshint:path_to_file
我想覆盖默认的JSHint配置

grunt.initConfig({
  jshint: {
            options: {
              curly: true,
              eqeqeq: true,
              eqnull: true,
              browser: true,
              globals: {
                jQuery: true
              }
            },
            all: ['Gruntfile.js', 'Scripts/src/**/*.js']
        }

});
并且只包括那个特定的文件。 grunt jshint路径到文件也可以,但我不想使用

grunt jshint --file=filePath
选项函数,除非它能满足我的需要


这在某种程度上是可以实现的吗?

grunt的精神不仅仅是在命令行中指定文件,而是在Grunfile本身中编码要使用的文件。 所以我们需要更多关于你为什么要这么做的细节。我设想了两种可能性:

您只想处理一个子组件:在这种情况下,您将为每个组件声明不同的目标,并从命令行中调用目标:grunt jshint component1,在Gruntfile中使用:

jshint: {
  component1: [filePath1],
  component2: [filePath2]
}
这是一个性能问题:您只想jshint一些文件,因为只有它们被更改了。在这种情况下,结合grunt contrib watch在文件更改时运行jshint,结合grunt newer只在修改后的文件上运行


为什么要使用grunt而不是只运行jshint文件路径?我们的项目要求只依赖grunt进行构建、测试等,以便将所有内容都放在一个地方。感谢您迄今为止的输入,我同意这并不符合grunt的精神。我读过关于grunt watcher的文章,但我们需要在所有文件上运行JSHint,这些文件稍后将被检入,而硬编码grunt子集不可能这样做。只有通过JSHint测试后,才允许签入修改过的文件。如果确实无法像grunt jshint filepath/subset那样指定它,我必须使用您提到的watch或更新的方法使其工作。我认为自动化一切对您最好:使用watch+newer在修改过的文件上自动运行jshint,如果您的源代码管理工具允许的话,在所有文件上作为预提交钩子运行jshint。这样,您的策略将由您的工具强制执行。