使用Grunt时出现SyntaxError: Unexpected token错误,求解决方案
解决Grunt imagemin的SyntaxError错误
嘿,你的问题根源很明确——Gruntfile.js里的JavaScript语法写错了,导致Grunt加载配置文件失败,才会报SyntaxError和找不到imagemin任务的错误。我帮你把问题点和修正方案整理出来:
问题出在哪?
看你的Gruntfile代码,有几处标点符号用错了:
png配置块结尾用了分号;,但JavaScript对象的属性之间得用逗号,分隔,不能用分号jpg配置块结尾同样错用了分号,应该改成逗号- 整个
imagemin配置对象的最后多了个分号,这会直接导致语法解析失败
修正后的完整Gruntfile.js
module.exports = (function(grunt) { grunt.initConfig({ pkg: grunt.file.readJSON("package.json"), imagemin: { png: { options: { optimizationLevel: 7 }, files: [ { expand: true, cwd: 'images_src/', src: ['**/*.png'], dest: 'images_imagemin', ext: '.png' } ] }, // 把分号改成逗号,分隔imagemin的两个子配置 jpg: { options: { progressive: true }, files: [ { expand: true, cwd: 'images_src/', src: ['**/*.jpg','**/*.jpeg'], dest: 'images_imagemin/', ext: '.jpg' } ] } // 这里不用加标点,因为是imagemin的最后一个属性 } // 去掉原来多余的分号 }); grunt.loadNpmTasks('grunt-contrib-imagemin'); grunt.registerTask('default', ['imagemin']); });
怎么验证?
保存修改后的文件,重新在终端执行:
grunt imagemin
如果没有其他问题,Grunt就会正常启动图片压缩任务啦。
另外提个小建议:写配置文件时尽量保持清晰的换行和缩进,下次再遇到语法错误就能更快发现啦~
内容的提问来源于stack exchange,提问作者Maarten Leten
相关产品推荐
相关产品推荐

