【问题标题】:Using gulp to create localized resource bundles使用 gulp 创建本地化资源包
【发布时间】:2015-12-18 12:47:13
【问题描述】:

我在资源目录中有一堆文件:

  • labels.no.js
  • labels.en.js
  • errors.no.js
  • errors.en.js

我想为每种语言创建一个资源包,以便根据客户端的语言仅将其中一个资源包提供给客户端。所以我想要这个结果:

  • bundle.en.js(来自各个目录的所有 en 文件)
  • bundle.no.js(无文件也一样)

我不想硬编码语言(否则我可以复制/粘贴),所以我需要一些方法来根据后缀自动“加入”一个包中的文件(所以无论我有多少种语言,我将捆绑的数量等于按后缀分组的语言数量)

【问题讨论】:

    标签: javascript gulp gulp-concat


    【解决方案1】:

    我在 gulp-group-aggregate 的帮助下做到了:

    var groupAggregate = require("gulp-group-aggregate");
    
    gulp.task("buildResources:js", function () {
    return gulp.src(["/sourcefolder"], { base: "." })
        .pipe(groupAggregate({
            group: function (file) {
    
                var extractResourceLocale = function() {
                    var result = file.relative.substring(0, file.relative.length - 3); // remove ".js"
                    var dotIndex = result.lastIndexOf(".");
                    return result.substring(dotIndex + 1, result.length);
                }
    
                return extractResourceLocale(file);
            },
            aggregate: function (group, files) {
    
                var filesArray = [];
    
                for (var i = 0; i < files.length; i++) {
                    filesArray[i] = files[i].relative;
                }
    
                var bundlePath = "bundles/result." + group + ".js";
    
                gulp.src(filesArray)
                    .pipe(concat(bundlePath))
                    .pipe(uglify())
                    .pipe(gulp.dest("."));
    
                return {
                    path: ".",
                    contents: null
                }
            }
        }))
        .pipe(gulp.dest("."));
    

    });

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-27
      相关资源
      最近更新 更多