不知何时起我的构建CSS Sprite的grunt task突然不能运行了。CSS Sprite是利用grunt-spritesmith构建的。原本以为是配置文件的问题,于是反复删改Gruntfile.js中的sprite段配置,无果;又以为是引擎的问题,于是反复安装、删除各种图形处理模块,也无果。最后偶然读到grunt-spritesmith的源代码,发现它注册了一个名叫sprite的任务。突然想起我自己好像也注册了同名任务:

grunt.registerNpmTask('sprite', ['sprite']);

原来如此!我本想用我注册的sprite任务去调用grunt-spritesmithsprite任务,结果两个正好同名,导致死循环调用。。。解决方法,把这行删掉就可以了。

记录下来引以为戒。