gulp-detect

0.1.2 • Public • Published

gulp-detect

Wraps your module-agnostic library code to support CommonJS, RequireJS and standard browser environments.

Installation

> npm install gulp-detect

Usage

var detect = require('gulp-detect');

gulp.task('build', function() {
    return gulp.src(['./mainFile.js'])
        .pipe(detect('globalVar'))
        .pipe(gulp.dest('./dist'));
});

How it works

The gulp-detect module will take your file streams, and wrap them in an Immediately Invoking Function (IIF) to prevent unnecessary entries into window if in the browser. Then, it will add environment detection code which will automatically determine the environment and register then given global variable to either a RequireJS module, a CommonJS module, or the global window object in the browser. Here is a sample of what the transformed file looks like:

(function () {
    var _detectedModuleType;
    if (typeof define === 'function' && define.amd) {
        _detectedModuleType = 'RequireJS';
    }
    else if (typeof module === 'object' && module.exports) {
        _detectedModuleType = 'CommonJS';
    }
    else if (typeof window !== 'undefined') {
        _detectedModuleType = 'Browser';
    }
    else {
        throw 'Error: No browser or module system detected!';
    }
    var YOUR_GLOBAL_NANE_HERE = {};

// your code gets put here.

    switch (_detectedModuleType) {
        case 'RequireJS':
            define(['YOUR_GLOBAL_NANE_HERE'], YOUR_GLOBAL_NANE_HERE);
            break;
        case 'CommonJS':
            module.exports = YOUR_GLOBAL_NANE_HERE;
            break;
        case 'Browser':
            window.YOUR_GLOBAL_NANE_HERE = YOUR_GLOBAL_NANE_HERE;
            break;
   }
})();

Note that anything that you wish to expose across module systems must be registered with the global name provided to the detect() function call.

Package Sidebar

Install

npm i gulp-detect

Weekly Downloads

1

Version

0.1.2

License

MIT

Last publish

Collaborators

  • stevenmhunt