Grunt.js输出文件夹内容并将其写入文件吗? [英] Grunt.js output and write contents of folder to file?

查看:28
本文介绍了Grunt.js输出文件夹内容并将其写入文件吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目标:

动态包含/static/js/**/*.js/static/css/**/*.css文件<head>

方法:

我使用的是客户端模板分词,因此在本例中,我希望将所有内容的文件路径写在:

/static/js/**/*.js/templates/head.js.dust
/static/css/**/*.css/templates/head.css.dust

当然,仅有文件路径是不够的。我需要一种预处理输出的方法,以便每个"文件"都用适当的标签包装,比如:

<!-- /templates/head.js.dust -->
<script src="/static/js/assests/jquery.js"></script>
<script src="/static/js/assests/jquery_ui.js"></script>
<script src="/static/js/app.js"></script>
...

<!-- /templates/head.css.dust -->
<link src="/static/css/assests/jquery_ui.css"/>
<link src="/static/css/app.css"/>
...

问题:

外面有没有已经有类似功能的咕噜模块?

加分:如果没有,我如何开始构建这样的东西?

推荐答案

您可以通过相当简单的方式完成此操作:

grunt.registerMultiTask("assetAppend", "Append JS/CSS assets to a file", function() {
    var paths = grunt.file.expand( this.data.paths ),
        out = this.data.output,
        contents = "";

    paths.forEach(function( path ) {
        if ( /.js$/i.test( path ) ) {
            contents += '<script src="' + path + '"></script>';
        } else if ( /.css$/i.test( path )) {
            contents += '<link rel="stylesheet" type="text/css" href=' + path + ' />';
        }
    });

    grunt.file.write( out, contents );
});

grunt.initConfig({
    assetAppend: {
        js: {
            paths: ["static/js/**/*.js"],
            output: "head.js.dust"
        },
        css: {
            paths: ["static/css/**/*.css"],
            output: "head.css.dust"
        }
    }
});

此示例现在是我的插件的一部分grunt-contrib-assetpush

这篇关于Grunt.js输出文件夹内容并将其写入文件吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆