Package Exports
- gulp-library-umd
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (gulp-library-umd) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
gulp-library-umd
Gulp plugin for transforming node modules into various flavors of UMD (Universal Module Definition). Wraps files with a specified UMD template.
Supports gulp-sourcemaps! Supports gulp-data!
Templates
gulp-library-umd
supports many templates out of the box, including all those provided by UMDjs and gulp-umd
origin | template | amd | web | cjs | node | notes |
---|---|---|---|---|---|---|
UMDjs | amdWeb.js | X | X | Uses AMD or browser globals to create a module | ||
UMDjs | amdWebGlobal.js | X | X | Uses AMD or browser globals to create a module. Creates a web global when AMD is used | ||
UMDjs | commonjsAdapter.js | X | X | Defines a module that works in CommonJS and AMD | ||
UMDjs | commonjsStrict.js | X | X | X | Uses CommonJS, AMD or browser globals to create a module | |
UMDjs | commonjsStrictGlobal.js | X | X | X | Uses CommonJS, AMD or browser globals to create a module. Creates a web global when AMD is used | |
UMDjs | jqueryPlugin.js | X | X | X | X | Uses CommonJS, AMD or browser globals to create a jQuery plugin |
UMDjs | nodeAdapter.js | X | X | Defines a module that works in Node and AMD | ||
UMDjs | returnExports.js | X | X | X | Uses Node, AMD or browser globals to create a module. | |
UMDjs | returnExportsGlobal.js | X | X | X | Uses Node, AMD or browser globals to create a module. Creates a web global when AMD is used | |
gulp-umd | amd.js | X | ||||
gulp-umd | amdCommonWeb.js | X | X | X | ||
gulp-umd | common.js | X | ||||
gulp-umd | node.js | X | ||||
gulp-umd | web.js | X | ||||
gulp-library-umd | umd.js | X | X | X | X | Simple support for each of the major export platforms |
gulp-library-umd | umdGlobal.js | X | X | X | X | Simple support for each of the major export platforms. Creates a web global when AMD is used |
Usage
var gulp = require('gulp');
var gulpSourceMaps = require('gulp-sourcemaps'); // optional
var gulpData = require('gulp-data'); // optional
var gulpLibraryUmd = require('gulp-library-umd')
gulp.task('build', function () {
return gulp.src('source.js')
// optional per-file settings
.pipe(gulpData(function (file) {
return {};
}))
// optional source map support
.pipe(gulpSourceMaps.init())
// ...
.pipe(gulpLibraryUmd({
templateName: 'umd',
require: {
libA: 'libA',
libB: {
name: 'lib-b-default',
amd: 'lib-b-amd',
cjs: 'lib-b-cjs',
node: 'lib-b-node',
web: 'libBWeb'
}
},
exports: 'result',
namespace: 'myModuleGlobal'
}))
.pipe(gulpSourceMaps.write())
.pipe(gulp.dest('dist'))
});
input: source.js
var result = {
A: libA,
B: libB,
B: libC
};
result: dist/source.umd.js
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(["libA","lib-b-amd"], factory);
} else if (typeof module === 'object' && module.exports) {
// Node. Does not work with strict CommonJS, but
// only CommonJS-like environments that support module.exports,
// like Node.
module.exports = factory(require("libA"), require("lib-b-node"));
} else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {
// CommonJs
(function (results) {
for (var key in results) {
if ({}.hasOwnProperty.call(results, key))
exports[key] = results[key];
}
})(factory(require("libA"), require("lib-b-cjs")));
} else {
// Browser globals
root.myModuleGlobal = factory(root.libA, root.libBWeb);
}
}(this, function (libA,libB) {
var result = {
A: libA,
B: libB,
B: libC
};
return result;
}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBIiwiZmlsZSI6InNvdXJjZS51bWQuanMiLCJzb3VyY2VSb290IjoiL3NvdXJjZS8iLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgcmVzdWx0ID0ge1xyXG4gIEE6IGxpYkEsXHJcbiAgQjogbGliQixcclxuICBCOiBsaWJDXHJcbn07XHJcbiJdfQ==
Options
name | type | default | description |
---|---|---|---|
templateCache |
Boolean |
true |
Cache compiled templates |
templateName |
String |
undefined |
Name of the template to use. Overrides templatePath |
templatePath |
String |
undefined |
Full file path of the template to use. Overrides template |
template |
String |
undefined |
doT.js template source to be compiled and used |
template |
Function |
undefined |
function which takes a single argument, context, and returns a string |
modes |
Array |
['cjs', 'node', 'amd', 'web'] |
List of modes to support. Used when providing distinct libraries for each mode |
indent |
Boolean |
true |
Indent content according to the specified template |
rename |
Boolean |
true |
Rename files to include the template name as an extension suffix on the basename. eg, source.js -> source.amd.js |
require |
Object |
{} |
variable name :library name id mapping of each required library |
exports |
String |
exports |
Name of the variable to export. In CommonJs, only own properties of this variable will be exported. |
exports |
Array |
List of names to exports. In most modes, these will be exported as an object literal with the given properties | |
namespace |
String |
undefined | Name to use when exporting as a global. Used in web and global modes. If no namespace is provied, one will be generated from the filename |
Specifying libraries
No libraries
gulpLibraryUmd({ })
Identical libraries for each mode
gulpLibraryUmd({
requires: {
libA: 'library-a',
libB: 'library-b'
}
})
Different libraries for each mode
gulpLibraryUmd({
requires: {
libA: {
name: 'library-a', // used as default name when no alternative is specified for the mode
web : 'libraryA', // web globals should be valid identifiers
amd : null // AMD does not require this library
}
}
})
Installation
npm install --save-dev gulp-library-data