grunt-newer将无法正常使用Watchify

我用一堆软件包来使用Grunt for Node 。 例如jsHintjsDocBrowserifyUglify

我使用Watchify更新Gruntfile来运行自动化。 到现在为止还挺好。

Gruntfile,工作总是很好:

module.exports = function(grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), jshint: { all: ['my/js/files/*.js'] }, jsdoc : { dist : { src: ['my/js/files/*.js'], options: { destination: 'doc' } } }, browserify: { 'public/js/files/script.js': ['my/js/files/*.js'] }, uglify: { my_target: { files: { 'public/js/files/script.js': ['public/js/files/script.js'] } } }, htmlmin: { dist: { files: { 'public/html/index.html': ['public/html/index.html'] } } }, cssmin: { combine: { files: { 'public/css/css.min.css': ['my/css/files/*.css'] } } }, watch: { javascript: { files: ['my/js/files/*.js'], tasks: ['newer:jshint:all', 'jsdoc', 'browserify', 'uglify'] }, html: { files: ['public/html/index.html'], tasks: ['htmlmin'] }, css: { files: ['public/css/*.css'], tasks: ['cssmin'] } } }); // load plugins grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-jsdoc'); grunt.loadNpmTasks('grunt-browserify'); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-htmlmin'); grunt.loadNpmTasks('grunt-contrib-cssmin'); grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-newer'); }; 

它的工作原理,我只使用较新js提示 。 但是,如果我尝试与jsDocUglify相同,我会得到错误消息。

例:

我试试这个…

 tasks: ['newer:jshint:all', 'newer:jsdoc:all', 'browserify', 'uglify'] 

代替 …

 tasks: ['newer:jshint:all', 'jsdoc', 'browserify', 'uglify'] 

我得到错误消息:

 Running "newer:jsdoc:all" (newer) task Warning: Cannot read property 'files' of undefined Use --force to continue. Aborted due to warnings. 

为什么它为js提供了工作,但其余的不是? 有没有人有一个想法? 非常感谢一些提示!

亲切的问候

你的jshint任务的目标是allnewer:jshint:all正确。

你的jsdoc目标是dist ,所以你必须使用这个目标: newer:jsdoc:dist

对于你来说,它更容易,你只有一个目标每个任务(只有你的手表任务有多个目标),所以你只能这样做:

  ['newer:jshint', 'newer:jsdoc', 'browserify', 'uglify']