将字符串添加到gulp流的开头

时间:2015-01-25 22:12:32

标签: javascript gulp gulp-concat

我已经设置了一个gulpfile.js,它将我的js文件目录编译成一个(缩小的)源。但我需要一小段代码来处理它(初始化它们正在修改的对象文字),但我似乎无法弄清楚如何实现这一点。 (参见下面的gulpfile)

var jshint = require('gulp-jshint');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
gulp.task('build', function() {
    return gulp.src('src/*.js')
        .pipe(concat('ethereal.js'))
        .pipe(gulp.dest('build'))
        .pipe(rename('ethereal.min.js'))
        .pipe(uglify())
        .pipe(gulp.dest('build'));
});
gulp.task('lint', function() {
    return gulp.src('src/*.js')
        .pipe(jshint())
        .pipe(jshint.reporter('default'));
});
gulp.task('watch', function() {
    gulp.watch('src/*.js', ["lint", "build"]);
})

src中的每个文件都修改了我需要添加到输出脚本开头的对象文字

例如,src / Game.js如下:

Ethereal.Game = function() {
    // init game code
}

注意它假设Ethereal是一个它正在修改的真实对象,它是什么。

TL; DR

  1. 如何在gulp流文件的开头添加一段代码
  2. 如果不可能,我怎么能用其他工具达到这样的效果呢?

1 个答案:

答案 0 :(得分:2)

只需首先包含要包含该代码段的文件,然后执行以下操作:

src / first.js

var Ethereal = function() {
    // define Ethereal class constructor and stuff
}

<强>的src / Game.js

Ethereal.Game = function() {
    // init game code
}

然后在gulpfile中:

gulp.task('build', function() {
    return gulp.src(['src/first.js', 'src/*.js'])
        .pipe(concat('ethereal.js'))
        .pipe(gulp.dest('build'))
        .pipe(rename('ethereal.min.js'))
        .pipe(uglify())
        .pipe(gulp.dest('build'));
});

这将 build / ethereal.js 输出为

var Ethereal = function() {
    // define Ethereal class constructor and stuff
} 
Ethereal.Game = function() {
    // init game code
}

或只使用http://browserify.org/并在每个实现它的模块中需要Ethereal模块。