0.2.3 • Published 5 years ago

gulp-commonjs-module-mix v0.2.3

Weekly downloads
-
License
ISC
Repository
-
Last release
5 years ago

更新说明

本次修改是基于@typist 创建的gulp-commonjs-module包进行的改动,主要的改动点如下

支持commonjs里面require('./a')这种简写方式,原包使用时需要按标准写法require('./a.js')编写才会进行相应后续操作。

使用方法未做修改

var commonjs = require("gulp-commonjs-module-mix");
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.3

5 years ago

0.2.2

5 years ago

0.2.1

5 years ago