2015-01-25 4 views
0

У меня установлена ​​gulpfile.js, которая скомпилирует мою директорию js-файлов в один (минитипированный) источник. Но мне нужен небольшой фрагмент кода для его обработки (инициализация литерала объекта, который они изменяют), но я не могу понять, как это сделать. (См gulpfile ниже)Добавить строку в начало потока gulp

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"]); 
}) 

Каждый файл в ЦСИ изменяет литерал объекта, который нужно добавить в самом начале вывода сценария

Например, ЦСИ/Game.js выглядит следующим образом:

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

Обратите внимание, что это означает, что Ethereal - это реальный объект, который он модифицирует, а именно.

TL; DR

  1. Как бы я добавить фрагмент кода в начале глотка файла потока
  2. Если это не представляется возможным, как бы я смог добиться такого эффекта с другим инструментом?

ответ

1

Просто создайте файл с фрагментом для включения первой и сделать это:

SRC/first.js

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

SRC/Game.js

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

Затем в файле gulp:

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')); 
}); 

Этот выход будет сборки/ethereal.js в

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

или просто использовать http://browserify.org/ и требуют Ethereal модуля в каждом модуле, который реализует его.

+0

извините за вопрос о nooby, но я очень новичок в создании систем – MayorMonty

Смежные вопросы