Concat并在匿名函数中包装多个js文件(构建过程)

时间:2015-01-29 17:20:35

标签: javascript build-process gulp

我正在javascript中构建一个非常大的脚本,我将它包装在一个匿名函数中,因此它不会在全局外层空间中。 这应该在多个站点上实现,作为暂时不需要任何公共API的服务(如果需要,我将只公开它想要的功能)。

这是我的一个巨大的js文件的示例:

"use strict";

(function() {
    var MyApp = {};

    /************************************************************
     * MyApp helpers
     ************************************************************/
    MyApp.Helpers = {};

    /**
     * Generate something
     */
    MyApp.Helpers.someFunc = function() {
    }

    /************************************************************
     * MyApp Widget
     ************************************************************/
    MyApp.Widget = function() {};

    /**
     * Create / update widget's dom element
     */
    MyApp.Widget.prototype.build = function() {
        this.driver.build();
    };

    /************************************************************
     * Widget Drivers
     ************************************************************/
    MyApp.Widget.Drivers = {};

    /************************************************************
     * Some Driver
     ************************************************************/
    MyApp.Widget.Drivers.SomeDriver = function(widget) {
        this.widget = widget;
    }

    /************************************************************
     * Run app
     ************************************************************/
    // Fire in the hole!
    MyApp.App.init();
})();

我想将它分解为多个目录下的多个文件,并在一个gulp函数中构建它。

截至目前这是js特定的gulp任务:

var jsFiles = [
    'src/js/vendor/*.js', // polyfills and other non-project-specific plugins
    'src/js/MyApp.js' // my huge js file
];

gulp.task('js', function () {
    return gulp.src(jsFiles)
        .pipe(concat('all.min.js'))
        .pipe(uglify())
        .pipe(gulp.dest('build/js'));
});

那么......这样做是否有意义,或者我只是做错了?如果我的问题是合乎逻辑的,我怎么能实现呢?

提前谢谢!

0 个答案:

没有答案