将字符串添加到 gulp 流的开头
Add string to the beginning of a gulp stream
我已经设置了一个 gulpfile.js 可以将我的 js 文件目录编译成一个(缩小的)源代码。但是我需要一小段代码来处理它(初始化他们正在修改的对象文字),但我似乎无法弄清楚如何实现这一点。 (请参阅下面的 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"]);
})
src 中的每个文件都修改了一个对象文字,我需要将其添加到输出脚本的最开头
例如src/Game.js如下:
Ethereal.Game = function() {
// init game code
}
注意它是如何假定 Ethereal 是它正在修改的真实对象的,事实确实如此。
TL;DR
- 如何将代码片段添加到 gulp 流文件的开头
- 如果那不可能,我怎么能用其他工具达到这样的效果?
只需先创建一个包含要包含的代码片段的文件,然后执行以下操作:
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
模块。
我已经设置了一个 gulpfile.js 可以将我的 js 文件目录编译成一个(缩小的)源代码。但是我需要一小段代码来处理它(初始化他们正在修改的对象文字),但我似乎无法弄清楚如何实现这一点。 (请参阅下面的 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"]);
})
src 中的每个文件都修改了一个对象文字,我需要将其添加到输出脚本的最开头
例如src/Game.js如下:
Ethereal.Game = function() {
// init game code
}
注意它是如何假定 Ethereal 是它正在修改的真实对象的,事实确实如此。
TL;DR
- 如何将代码片段添加到 gulp 流文件的开头
- 如果那不可能,我怎么能用其他工具达到这样的效果?
只需先创建一个包含要包含的代码片段的文件,然后执行以下操作:
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
模块。