많은 시행 착오를 거쳐 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을 만들었습니다,하지만 최소한의 예 (나는에 아주 새로운 해요 이 모든 수정 사항을 매우 높이 평가).
https://github.com/gulpjs/gulp/blob/master/docs/recipes/fast-browserify-builds-with-watchify.md –
컴파일 시간을 줄이는 더 좋은 방법 인 것처럼 보이지만, 테스트 커버리지 문제를 해결할 수 없습니다. 'blanket.js'는 스크립트 태그에'data-cover' 속성을 사용하여 어디에서 적용 범위를 적용 할 것인지,'jQuery' 외. 내가'jQuery'를 모두 다루지는 않았기 때문에 browserify 번들에 포함되어 있습니다. – thebjorn