Grunt Smoosher什么都不做

时间:2013-09-07 01:56:31

标签: javascript gruntjs grunt-smoosher

我是Grunt的新手。在这个Gruntfile中使用smoosher,我试图在我的HTML中插入所有CSS和Javascript资源:

module.exports = function ( grunt ) {

    grunt.initConfig({
        smoosher: {
            files: {
                'page1-dist.html': 'page1.html'
            }
        }
    });

    grunt.loadNpmTasks( 'grunt-html-smoosher' );

    grunt.registerTask( 'default', [ 'smoosher' ] );
};

但它没有做任何事情。它不会生成任何page1-dist.html文件。这是我在运行grunt时获得的唯一输出:

Running "smoosher:files" (smoosher) task

Done, without errors.

知道出了什么问题吗?

1 个答案:

答案 0 :(得分:2)

问题是grunt-html-smoosher在Grunt中被称为multitask。基本上这意味着您需要将设置包装在目标中,即使您只指定了一组选项。看了一下这个插件的源代码,在底部记录了一个文件的创建,所以它只是配置不正确(因为你没有得到预期的输出)。因此,您的Gruntfile应该是这样的:

module.exports = function ( grunt ) {

    grunt.initConfig({
        smoosher: {
            dist: {
                files: {
                    'page1-dist.html': 'page1.html'
                }
            }
        }
    });

    grunt.loadNpmTasks( 'grunt-html-smoosher' );

    grunt.registerTask( 'default', [ 'smoosher' ] );
};

如果您愿意,可以用其他内容替换dist

许多Grunt任务都遵循这种模式,如果你在特定的插件中有不同的选项,这取决于你想要影响的文件,这很有用,但如果插件没有按照你期望的方式运行,你应该记住它。请务必阅读Grunt插件的文档,稍后您会感谢自己。 : - )