javascript - Make browserify modules external with Gulp -


i have library lib.js want create lib/a.js , lib/b.js , able use script client.js using var = require('lib/a.js'); , works when include compiled lib.js library before client.js (therefore, lib.js has declare require function knows lib/a.js)

i guess have use external , alias not sure proper way it

also, possible have gulp file creates alias automatically folders in library? eg. creates alias files in lib/ dir?

here couple of gulp tasks build common lib.js , client.js bundles separately.

note have tell browserify b.require() lib/*.js when bundling lib.js, , have tell b.external() libraries loaded separately when bundling client.js

var path = require('path'); var gulp = require('gulp'); var browserify = require('browserify'); var concat = require('gulp-concat'); var transform = require('vinyl-transform');  gulp.task('build-lib', function () {    // use `vinyl-transform` wrap around regular readablestream returned b.bundle();   // can use down vinyl pipeline vinyl file object.   // `vinyl-transform` takes care of creating both streaming , buffered vinyl file objects.   var browserified = transform(function(filename) {      // basename, eg: 'a.js'     var basename = path.basename(filename);      // define exposed name client.js use require();     // eg: require('lib/a.js'); // -> exposed name should 'lib/a.js'     var expose = 'lib/' + basename;      return browserify(filename)       .require(filename, { expose: expose})       .bundle();   });    return gulp.src(['./lib/*.js'])     .pipe(browserified)     .pipe(concat('lib.js'))     .pipe(gulp.dest('./dist')); });  gulp.task('build-client', function () {    var browserified = transform(function(filename) {     // filename = './client.js'      // let browserify know lib/a.js , and lib/b.js external files     // , loaded externally (in case, loading bundled lib.js      // eg: <script src='dist/lib.js'>)     return browserify(filename)       .external('lib/a.js')       .external('lib/b.js')       .bundle();   });    return gulp.src(['./client.js'])     .pipe(browserified)     .pipe(gulp.dest('./dist')); });  gulp.task('default', ['build-lib', 'build-client']); 

Comments

Popular posts from this blog

html - Sizing a high-res image (~8MB) to display entirely in a small div (circular, diameter 100px) -

java - IntelliJ - No such instance method -

identifier - Is it possible for an html5 document to have two ids? -