gulp-commonjs-module
v0.2.0
Published
commonjs module in browser
Downloads
6
Readme
gulp-commonjs-module
##插件说明
本插件旨在浏览器端简单实现commonjs
注意:只有包含 require("xxxx") 引用模块语法,且非子模块(不含有 module.exports=xxxx)的js文件才会作为入口文件进行输出。
更新说明
v0.2.0 本次更新,增加了自定义模块函数define、require名称前缀的功能,主要是防止与其它cmd,amd混用时产生的命名冲突
##如何使用
var commonjs = require("gulp-commonjs-module");
gulp.src("src/js/**/*.js")
.pipe(commonjs(/*{prefix: "_my_commonjs_"}*/))
.pipe(gulp.dest("dist/js"));
//如果需要提取公共模块
gulp.src("src/js/**/*.js")
.pipe(commonjs({
// 可以是字符串,表示公共模块集合文件名称
commons: 'common'
// 也可以是数组,每个子项表示要生成的公共模块集合,
// 目前只支持参数 amount,表示被入口文件引用次数不小于此数量的模块的集合
// amount 必需是数字,且不小于2
// commons: [{name: "commons", amount: 2}, {name: "xxxx", amount: 3}],
// 模块函数define、require名称前缀,默认为空, 可以自定义一个前缀名如:"_my_commonjs_"
// prefix: ""
}))
.pipe(gulp.dest("dist/js"));
源文件
//a.js
function m(n) {
console.log(n);
}
module.exports = m;
//b.js
function test() {
var m = require("./a.js");
m("这是一个测试!");
}
test();
输出文件
//b.js
(function(root) {
// 模块化基础代码,包括requre, define 的定义
...
})(this);
define("a.js", function(require, exports, module) {
function m(n) {
console.log(n);
}
module.exports = m;
});
function test() {
var m = require("./a.js");
m("这是一个测试!");
}
test();
// 如果自定义模块函数define、require名称前缀
(function(root) {
root._my_commonjs_define = function() {};
root._my_commonjs_require = function() {};
})(this);
_my_commonjs_define("a.js", function(_my_commonjs_require, exports, module) {
function m(n) {
console.log(n);
}
module.exports = m;
});
function test() {
var m = _my_commonjs_require("./a.js");
m("这是一个测试!");
}
test();
最后
比较简陋,欢迎有兴趣的朋友可以改进它