一个根据alias配置合并js文件的gulp插件,合并时会自动提取模块间的依赖
发布于 11 年前 作者 PeterMu 10892 次浏览 最后一次编辑是 9 年前 来自 分享

gulp-alias-combo

一个根据alias配置合并js文件的gulp插件,合并时会自动提取模块间的依赖

Install

npm install gulp-alias-combo --save-dev

Usage

使用场景

gulp-alias-combo插件主要目的是合并seajs/requirejs中配置的别名模块,会把所 有配置的别名模块合并到入口js文件中。合并过程中会自动提取依赖模块,不会出现 重复合并。

使用样例

var gulp = require('gulp')
var aliasCombo = require('gulp-alias-combo')
 
gulp.task('combo', function(){
 return gulp.src('src/apps/*.js')
 .pipe(aliasCombo({
 baseUrl: __dirname + '/src/',
 alias: {
 'monitor/underscore': "libs/underscore/1.8.3/underscore.js",
 'monitor/backbone': "libs/backbone/1.1.2/backbone.js",
 'monitor/project': "common/project"
 }
 }))
 .pipe(gulp.dest('dest/apps'));
})

提示:

  1. baseUrl和alias都是必须配置项,baseUrl和alias配置的路径合并后就是模块的绝对路径。
  2. 如果在alias中没有配置的别名,在合并时会忽略,不会进行合并操作。
  3. 要合并的模块不要指定模块ID,合并的时候会根据alias配置设置模块的ID,模块要使用CommonJS标准写法。即:
defind(function(require, exports, module){
 //code
})

运行

gulp combo

运行完成后,会打印合并日志:

[16:44:18] build /work/build/src/apps/app.js:
 monitor/backbone:[/work/build/src/libs/backbone/1.1.2/backbone.js]
 monitor/underscore:[/work/build/src/libs/underscore/1.8.3/underscore.js]
 monitor/views/project:[/work/build/src/views/project.js]

GitHub

https://github.com/PeterMu/gulp-alias-combo

欢迎star,欢迎issues & pull request

License

MIT @ Peter Mu

3 回复

我打包的时候,合并出来的入口文件始终有个ID,不能正常执行,去掉后就正常了,这是为什么?

QQ五笔截图未命名.png

QQ五笔截图未命名1.png

不好意思,回复晚了,入口文件的ID在没有配置alias的情况下,在新版本里不会再自动添加ID,用下最新版本吧,以后有问题建议在github上提issue

赞一个


我现在用的是这个: webpack+fis3 webpack 打包 fis3 : 文件指纹, 资源路径替换(含html里地路径) 差不多前端的打包,合并,压缩,预编译,文件指纹,环境资源路径替换都有了 纯json配置

rails的asset pipeline才是真正的省时省力, 前端工程化的东西太弱了,写task好烦

回到顶部

AltStyle によって変換されたページ (->オリジナル) /