0.2.0 • Published 6 years ago

gulp-commonjs-module v0.2.0

Weekly downloads
11
License
ISC
Repository
-
Last release
6 years ago

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();

最后

比较简陋,欢迎有兴趣的朋友可以改进它

0.2.0

6 years ago

0.1.5

7 years ago

0.1.4

7 years ago

0.1.3

7 years ago

0.1.2

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago