6

我在配置 Grunt 以查看我的项目文件、重建和更新托管在连接服务器中的页面时遇到问题。如果我运行任何构建任务,然后'watch'作为组合任务的一部分,那么'watch'似乎会陷入循环,无休止地打印消息。

Running "watch" task
Waiting...
Warning: must provide pattern

相反,如果我只是运行$ grunt watch,它会很高兴地观察我的源文件并根据需要进行编译/构建。

我认为相关的任务配置是这些:

watch: {
  html: {
    files: [ '<%= site.partials %>', '<%= site.layouts %>', '<%= site.pages %>' ],
    tasks: [ 'html' ]
  },
  sass: {
    files: [ '<%= site.src %>sass/*.scss' ],
    tasks: [ 'styles' ]
  }
},

// development server
connect: {
  options: {
    port: 8080,
    livereload: 35729,
    hostname: 'localhost',
  },
  dev: {
    options: {
      directory: 'build',
    }
  }
},

和任务定义:

grunt.registerTask( 'build', [ 'styles', 'html', ] );
grunt.registerTask( 'default', [  'build','connect:dev', 'watch' ] );

和任务运行 grunt-sass'styles''html'assemble。如上所述,运行任何这些任务,甚至单独运行都会'watch'产生预期的结果。这表明我的配置对象已经正确定义了site.partialssite.dest。问题仅在我运行任何任务时发生,然后'watch',就像在默认任务中一样。

4

2 回答 2

17

我刚刚在编辑 Gruntfile 并将一个字段(应该有一个文件模式)留空时遇到了类似的问题。

检查您的 Gruntfile 是否有空文件字段。

在我的具体例子中:

wiredep: {
    options: {
        overrides: {
          "jquery-ui": {
              "main": [
                 "jquery-ui.js",
                 "themes/base/jquery-ui.css",
                 ""
              ]
          }
        }
    }
}

注意上面的空字符串。这产生了一个与您的错误非常相似的错误。不幸的是,Grunt 似乎没有告诉你错误在哪里。您只需要手动扫描 Gruntfile 即可找到错误。

于 2015-07-23T05:37:50.573 回答
-1

连接:开发是问题所在。删除它,它应该可以正常工作。

于 2014-11-09T03:13:10.687 回答