Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stevenmhunt/gulp-detect
Wraps your module-agnostic library code to support CommonJS, RequireJS and standard browser environments.
https://github.com/stevenmhunt/gulp-detect
Last synced: about 1 month ago
JSON representation
Wraps your module-agnostic library code to support CommonJS, RequireJS and standard browser environments.
- Host: GitHub
- URL: https://github.com/stevenmhunt/gulp-detect
- Owner: stevenmhunt
- License: mit
- Created: 2016-09-06T04:15:04.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2016-09-07T11:24:37.000Z (over 8 years ago)
- Last Synced: 2024-10-31T18:36:30.632Z (about 2 months ago)
- Language: JavaScript
- Size: 3.91 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gulp-detect
Wraps your module-agnostic library code to support CommonJS, RequireJS and standard browser environments.# Installation
> npm install gulp-detect
# Usagevar detect = require('gulp-detect');
gulp.task('build', function() {
return gulp.src(['./mainFile.js'])
.pipe(detect('globalVar'))
.pipe(gulp.dest('./dist'));
});#### detect (globalVariable)
- globalVariable - The name of the global variable to use within your project to add objects to or to set as the default export. The default value is `globalObject`.# 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.