grunt-newer将无法正常使用Watchify
我用一堆软件包来使用Grunt for Node 。 例如jsHint , jsDoc , Browserify , Uglify …
我使用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提示 。 但是,如果我尝试与jsDoc或Uglify相同,我会得到错误消息。
例:
我试试这个…
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任务的目标是all
, newer:jshint:all
正确。
你的jsdoc目标是dist
,所以你必须使用这个目标: newer:jsdoc:dist
对于你来说,它更容易,你只有一个目标每个任务(只有你的手表任务有多个目标),所以你只能这样做:
['newer:jshint', 'newer:jsdoc', 'browserify', 'uglify']