【发布时间】:2013-02-20 07:57:49
【问题描述】:
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.
通过 watch 插件自动构建
Waiting...OK
>> File "some.js" changed.
Running "min:app" (min) task
因此,如果不查看输出本身,就无法知道构建是否成功。
使用 css less 的类似设置确实会向 CLI 显示错误,我想知道是否需要将某些内容传递给 grunt/watch plugin/uglify 以使其工作?
【问题讨论】:
-
您在运行 grunt watch 时是否在同一位置出现错误?
-
不确定我是否得到你的问题:问题是 grunt watch 没有告诉我是否有错误。两个错误/成功都会导致我在上面引用的相同消息(第三个引用)。只有手动运行 grunt min task 才会显示错误 - 我当然可以修复它,但它违背了 watch 插件的目的。
-
抱歉,刚刚误解了您的问题。澄清一下,watch 不会自动构建,Uglify 会。 Watch 只是一个开发工具。
-
你是对的,我只是想了解为什么 watch 不会将错误消息从 uglify 传递到 cli。
-
uglify 应该只在构建阶段通过管道将错误传递给 cli,您可以通过在 cli 中运行
grunt min来初始化。你应该在开发过程中运行grunt watch,它会持续监控监视的文件和管道错误(或保存后的成功)到你的cli。但是,您配置 watch 的方式,所有运行 watch 的操作都是运行 uglify,这是您的构建工具,这违背了 watch 的目的。我会从手表配置中完全删除 min 命令。
标签: node.js build-automation gruntjs