我尝试使用blanket.js来衡量我的浏览器库的测试覆盖率,并且覆盖数量没有多大意义,因为我包括jQuery
,
es5-shim
和x-tag-core.js
。
我想创建多个包,如browserify documentation中所述,但是来自gulp
而不是命令行。基本上我想做一些像Sebastian Deutch describes这样的事情,除非最后没有连接步骤(他不做单独的捆绑以缩短编译时间)。
有人能指出我如何做到这一点的例子吗? (或者更好的代码覆盖方式......?)
答案 0 :(得分:4)
经过大量的反复试验,放弃gulp-browserify
插件后(它已经黑名单,但直接使用browserify
的例子很难得到),我设法让这个工作。我gulpfile.js
的显着部分是(我根本不确定source
来电的内容):
var gulp = require('gulp'),
gutil = require('gulp-util'),
clean = require('gulp-rimraf'),
rename = require('gulp-rename'),
source = require('vinyl-source-stream'),
browserify = require('browserify');
gulp.task('browserify:externals', function () {
var vendor = browserify(['jquery', 'es5-shim', 'lodash']);
vendor.require('jquery');
vendor.require('lodash', {expose: '_'});
vendor.require('es5-shim');
return vendor.bundle()
.pipe(source("not-used-but-needed-string.js"))
.pipe(rename('external.js'))
.pipe(gulp.dest('./dist'))
.on('error', gutil.log);
});
gulp.task('browserify', ['browserify:externals'], function () {
var app = browserify('./index.js');
app.external('jquery');
app.external('es5-shim');
app.require('./index.js', {expose: 'maxby'});
return app.bundle()
.pipe(source("not-used-but-needed-string.js"))
.pipe(rename('maxby.js'))
.pipe(gulp.dest('./dist'))
.on('error', gutil.log);
});
我还创建了一个repository,其中包含完整但极少的示例(我对此非常陌生,因此我们非常感谢所有更正)。