開始接手項目的時候,公司用的框架(kendoui,有興趣的同窗能夠去看一下,這是收費的並且國內的資料不多)包含了全部的模塊,未壓縮的時候是8M,壓縮完了是3.5M,個人主管和我說能不能拆分一下,當時我想也沒想就說能夠啊這還不簡單。(給本身挖了個坑)源代碼有20多萬行,我是一行一行的看,主要是找出模塊之間的依賴關係。而後看了兩天半,我就拆出來了,而後發現合不起來了!!!!!!!(氣死我了當時,dota都沒好好打)。沒辦法只能Google吧。一頓操做猛如虎,發現可用的知識不是不少啊。大部分說讓用r.js,可是不想啊,由於框架給了一個gulpFile文件,雖然我不少代碼看不懂,可是我知道能用gulp打包合起來。
這個時候可能有同窗說了爲何不用webpack,我之前配置的都是cmd模塊啊,amd模塊沒配置過,不敢貿然使用,怕浪費時間拖了工期啊。 接下來講一下網上的,有amd-optimize,而後大兄弟寫了shell,但我運行報錯了,發現如今使用的是gulp-exec,發現仍是不行,果斷放棄,這時候又發現一個gulp-requirejs-optimize。簡直開心的要飛起來了。發現總是把一些沒有的打進來,就又查了一下發現!['form/kendoui/xx.js','form/kendoui/xx.js']
就能夠了。jquery
let gulp = require('gulp');
let concat = require('gulp-concat');
let uglify = require('gulp-uglify');
let amdOptimize = require('amd-optimize');
let reqOptimize = require('gulp-requirejs-optimize');
let shell = require('gulp-shell');
let babel = require('gulp-babel')
gulp.task('jsTask',async function(){
return gulp.src('form/kendoui/main.js',!['])
.pipe(reqOptimize({
paths:{
},
exclude:[
'jquery'
],
// mainConfigFile:'form/kendoui/main.js',
optimize:'none',
fileExclusionRegExp: /^()+\.js$/,
skipModuleInsertion: true
}))
.pipe(concat(''))
.pipe(gulp.dest('./dist/js'))
});
複製代碼
`webpack
我把總體的結構貼出來,有須要的同窗能夠看一下。web