0.7.1 • Published 8 years ago

gulp-requirejs-combine v0.7.1

Weekly downloads
1
License
MIT
Repository
github
Last release
8 years ago

gulp-requirejs-combine

combine requirejs file into one file. purpose is reduce http request.

Next Plan

  • according to config file, merge all dependencies file into one file.
  • according to require file(write with require('./a','./b')), merge all dependencies file into one file.
  • support require/define write in function(){ require('./x')}, currently only support the file has one require or define function.

Install

npm install --save-dev gulp-requirejs-combine

DEMO

1.find out your config in requirejs

move config part into your gulpfile

require.config({
  baseUrl: './test/base',
  paths: {
    jsonp: 'jsonp',
    load: 'load',
    xhr: 'xhr',
    nonce: 'var/nonce',
    rquery: 'var/rquery'
  }
});

move it into gulp file config.

combine({
  baseUrl: './test/base',
  paths: {
    jsonp: 'jsonp',
    load: 'load',
    xhr: 'xhr',
    nonce: 'var/nonce',
    rquery: 'var/rquery'
  }
})

2.use in gulp

base use

var gulp = require('gulp');
var del = require('del');
var combine = require('gulp-requirejs-combine');

var paths = {
  js: [
    'test/base/base1.js',
    'test/base/base2.js'
  ],
  complicatejs: [
    'test/complicate/require.js'
  ]
};

gulp.task('clean', function (cb) {
  del(['build'], cb);
});

var baseConfig = {
  baseUrl: './test/base',
  paths: {
    jsonp: 'jsonp',
    load: 'load',
    xhr: 'xhr',
    nonce: 'var/nonce',
    rquery: 'var/rquery'
  }
};

gulp.task('default', function () {
  return gulp.src(paths.js)
    .pipe(combine(baseConfig))
    .pipe(gulp.dest('test/base/build'));
});

output will like this:

(function () {
	return (/\?/);
})();
(function (jQuery) {
  console.log('load');

})();
(function (jQuery) {

})();
(function (jQuery, support) {
    console.log('xhr');
})();
(function (jQuery, nonce, rquery) {

  console.log('jsonp');
})();
(function () {

  console.log('require run!');
})();

uglify

gulp.task('test:uglify', function () {
  return gulp.src(paths.js)
    .pipe(combine(baseConfig))
    .pipe(uglify())
    .pipe(gulp.dest('test/base/build'));
});
!function(o,s){"use strict";console.log("parseHTML")}(),function(o){"use strict";console.log("ajax")}(),function(o){"use strict";console.log("alias")}(),function(o,s){"use strict";console.log("xhr")}(),function(){"use strict";console.log("require run!")}();

more demo please see gulpfile

3.be careful about config

config is base on your gulpfile path. your need to config it base on your gulpfile location.

var config={
  baseUrl: './test/base',//base on where your gulpfile location.
  paths: {...
  }
}

4.run demo

install dependencies

npm install gulp -g
npm install

run demo

gulp
gulp test:base
gulp test:complicate

Problem

You are welcome to contribute

Any problem you can task issue or contact me: andy.lv@live.com