【问题标题】:Grunt.js output and write contents of folder to file?Grunt.js 输出并将文件夹的内容写入文件?
【发布时间】:2013-03-26 20:58:59
【问题描述】:

目标:

动态包含/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 模块已经做了这样的事情?

奖励积分: 如果没有,我什至如何开始构建这样的东西?

【问题讨论】:

    标签: node.js gruntjs


    【解决方案1】:

    您可以通过一种相当简单的方式做到这一点:

    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

    【讨论】:

    • 这看起来完全符合我的需要!我明天一定会试试的!忠告——虽然这似乎不是一个有用的工具,但如果人们知道它的存在(我几乎不相信我是第一个在寻找这样的东西的人),他们会使用它。我会在 github 上开源并在其他人之前将其放入 gruntjs.com/plugins 银行 =) ... 作为一个您可以配置的模块,它确实可以节省大量时间。
    • 非常感谢!你可以使用这个插件:github.com/gustavohenke/grunt-contrib-assetpush
    猜你喜欢
    • 1970-01-01
    • 2011-03-12
    • 2012-04-03
    • 2011-11-16
    • 2012-07-13
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 2023-03-18
    相关资源
    最近更新 更多