Grunt watch插件不显示UglifyJS中止消息

时间:2013-02-20 07:57:50

标签: node.js build-automation gruntjs

grunt-contrib-watch插件提供了很好的自动构建功能,但在某些情况下不会显示来自任务的警告消息,这里是我的grunt.js:

    min: {
        app: {
            src: [
                'some.js',
            ],
            dest: 'some.min.js'
        },
    }

    watch: {
        app: {
            files: 'some.js',
            tasks: ['min:app']
        },
    }

如果来源不错,一切顺利;但是当UglifyJS中止时:

直接运行grunt min:app

Running "min:app" (min) task
Minifying with UglifyJS...ERROR
[L360:C46] Unexpected token name, expected punc (position: 8529)
<WARN> UglifyJS found errors. Use --force to continue. </WARN>

Aborted due to warnings.

通过观看插件自动构建

Waiting...OK
>> File "some.js" changed.
Running "min:app" (min) task

因此,如果不查看输出本身,就无法知道构建是否成功。

使用css less的类似设置会向CLI显示错误,我想知道是否需要传递给grunt / watch plugin / uglify才能使其正常工作?

2 个答案:

答案 0 :(得分:0)

观察使用过的jshint,你需要确保jshint配置正确,然后添加到watch命令的grunt任务中。将jshint任务添加到监视任务,还包括jshint的配置选项(以下示例):

 jshint: {
   all: [
    'Gruntfile.js',
    'some.js'
  ],
  options: {
    jshintrc: '.jshintrc'
  }
},
// minification options here
watch: {
  scripts: {
    files: 'some.js',
    tasks: ['jshint']

 }
}

答案 1 :(得分:0)

看起来像Grunt v0.3.x + grunt-contrib-watch v0.1.4确实是问题......

https://github.com/gruntjs/grunt-contrib-watch/issues/19

https://github.com/gruntjs/grunt-contrib-watch/issues/7

编辑:升级到Grunt v0.4.x + grunt-contrib-watch v0.2.x后,问题解决了;虽然我应该注意这是一次破解升级,大多数是v0 .3插件未转换为支持Grunt v0.4)

我也关闭了他们的回购票,供参考:https://github.com/gruntjs/grunt-contrib-watch/issues/51