【问题标题】:grunt-contrib-jshint ignores has no effectgrunt-contrib-jshint 忽略无效
【发布时间】:2026-02-07 23:00:01
【问题描述】:

我想将 libs 目录排除在 lint 之外。但是,options 中的ignores 和项目目录中的.jshintignore 文件不会使libs 被排除在外。

 jshint: {
  options: {
    smarttabs: true,
    ignores: ['public/js/libs/**/*.js']
  },

  all: [
        'Gruntfile.js', 
        'public/js/**/*.js'
      ]

},

咕噜版本:

 grunt-cli v0.1.11
 grunt v0.4.2
 grunt-contrib-jshint@0.7.2

我错过了什么?

【问题讨论】:

    标签: gruntjs jshint


    【解决方案1】:

    ignores 是一个 jshint 选项,需要特定的文件。最好使用惯用的 Grunt 否定 ! 来排除文件:

    jshint: {
      options: {
        smarttabs: true
      },
      all: [
        'Gruntfile.js', 
        'public/js/**/*.js',
        '!public/js/libs/**/*.js'
      ],
    },
    

    http://gruntjs.com/configuring-tasks#globbing-patterns

    【讨论】:

    • 仔细检查模式。还可以尝试grunt --verbose 查看它匹配的文件,以确保它只匹配您想要的文件。
    • 包含已优化和连接文件的“build”目录会导致错误。一旦我否定“构建”目录。一切都很完美。谢谢杨先生!
    • @KyleRobinsonYoung 我使用了忽略,这也有效:忽略:['app/scripts/vendor/{,/}.js'] 不需要具体文件!!!这至少是我的经验。
    • @KyleRobinsonYoung 我似乎无法让它在我所有数组的最后一个中工作:'!' + FOLDERS.APP + "/process/*.js"
    • 对我来说很奇怪,我必须确保我的忽略位于数组的末尾,否则它不起作用......我认为这里的顺序很重要