1

我是 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.

知道有什么问题吗?

4

1 回答 1

2

问题在于,grunt-html-smoosher这就是multitaskGrunt 中所谓的 a。基本上这意味着您需要将设置包装在目标中,即使您只指定一组选项。查看了该插件的源代码后,它在底部记录了一个文件已创建,因此只是配置不正确(因为您没有得到预期的输出)。因此,您的 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 插件的文档,稍后您会为此感谢自己的。:-)

于 2013-09-07T16:05:27.687 回答