@@ -8,29 +8,18 @@ import qiniu from 'qiniu';
88import fs from 'fs' ;
99import gulp from 'gulp' ;
1010import clean from 'gulp-clean' ;
11- import concat from 'gulp-concat' ;
12- import rename from 'gulp-rename' ;
13- import uglify from 'gulp-uglify' ;
14- import source from 'vinyl-source-stream' ;
15- import streamify from 'gulp-streamify' ;
16- import browserify from 'browserify' ;
17- import browserSync from 'browser-sync' ;
1811import babel from 'gulp-babel' ;
12+ import shell from 'gulp-shell' ;
1913import { version } from './package.json' ;
2014
21- const reload = browserSync . reload ;
22-
23- // 获取当前版本号
24- const getAVVersion = ( ) => version ;
25-
26- const uploadCDN = ( file , version , cb ) => {
15+ const uploadCDN = ( file ) => {
2716 qiniu . conf . ACCESS_KEY = process . env . CDN_QINIU_KEY ;
2817 qiniu . conf . SECRET_KEY = process . env . CDN_QINIU_SECRET ;
2918 if ( ! qiniu . conf . ACCESS_KEY || ! qiniu . conf . SECRET_KEY ) {
3019 throw new Error ( 'Need Qiniu CDN_QINIU_KEY and CDN_QINIU_SECRET' ) ;
3120 }
3221 const bucketname = 'paas_files' ;
33- const key = ' static/js/' + path . basename ( file , '.js' ) + '-' + version + '.js' ;
22+ const key = ` static/js/${ version } / ${ path . basename ( file ) } ` ;
3423 const putPolicy = new qiniu . rs . PutPolicy ( bucketname + ':' + key ) ;
3524 const uptoken = putPolicy . token ( ) ;
3625 const extra = new qiniu . io . PutExtra ( ) ;
@@ -42,8 +31,8 @@ const uploadCDN = (file, version, cb) => {
4231 } else {
4332 console . log ( err ) ;
4433 }
45- cb ( ) ;
4634 } ) ;
35+ return file ;
4736} ;
4837
4938gulp . task ( 'clean-dist' , ( ) => {
@@ -56,47 +45,14 @@ gulp.task('clean-dist', () => {
5645} ) ;
5746
5847// 编译浏览器版本
59- gulp . task ( 'bundle-browser' , ( ) => {
60- return browserify ( {
61- entries : './src/index.js' ,
62- standalone : 'AV'
63- } ) . bundle ( )
64- . pipe ( source ( 'av.js' ) )
65- // .pipe(sourcemaps.init())
66- . pipe ( streamify ( babel ( {
67- compact : false
68- } ) ) )
69- // .pipe(sourcemaps.write("."))
70- . pipe ( gulp . dest ( 'dist' ) ) ;
71- } ) ;
48+ gulp . task ( 'bundle-browser' , shell . task ( 'npm run build:browser' ) ) ;
49+ gulp . task ( 'bundle-rn' , shell . task ( 'npm run build:rn' ) ) ;
50+ gulp . task ( 'bundle-weapp' , shell . task ( 'npm run build:weapp' ) ) ;
7251
73- gulp . task ( 'uglify' , [ 'bundle-browser' , 'bundle-weapp' ] , ( ) => {
74- return gulp . src ( [
75- 'dist/av.js' ,
76- 'dist/av-weapp.js'
77- ] )
78- . pipe ( uglify ( ) )
79- . pipe ( rename ( ( path ) => {
80- path . basename += '-min' ;
81- } ) )
82- . pipe ( gulp . dest ( 'dist' ) ) ;
83-
84- // return gulp.src(['dist/av-es5.js'])
85- // .pipe(clean());
86- } ) ;
87-
88- gulp . task ( 'bundle-weapp' , ( ) =>
89- browserify ( {
90- entries : './src/index-weapp.js' ,
91- standalone : 'AV'
92- } )
93- . bundle ( )
94- . pipe ( source ( 'av-weapp.js' ) )
95- . pipe ( streamify ( babel ( {
96- compact : false
97- } ) ) )
98- . pipe ( gulp . dest ( 'dist' ) )
99- )
52+ gulp . task ( 'uglify' , [ 'bundle-browser' , 'bundle-weapp' ] , shell . task ( [
53+ 'npm run uglify:browser' ,
54+ 'npm run uglify:weapp' ,
55+ ] ) ) ;
10056
10157gulp . task ( 'clean-node' , ( ) => {
10258 return gulp . src ( [ 'dist/node/**/*.*' ] )
@@ -106,10 +62,7 @@ gulp.task('clean-node', () => {
10662// 编译出 Node 版本
10763gulp . task ( 'babel-node' , [ 'clean-node' ] , ( ) => {
10864 return gulp . src ( 'src/**/*.js' )
109- // .pipe(sourcemaps.init())
11065 . pipe ( babel ( ) )
111- // .pipe(concat('av.js'))
112- // .pipe(sourcemaps.write("."))
11366 . pipe ( gulp . dest ( 'dist/node/' ) ) ;
11467} ) ;
11568
@@ -130,53 +83,21 @@ gulp.task('babel-demo', ['clean-demo'], () => {
13083
13184// 上传到 CDN
13285gulp . task ( 'upload' , ( ) => {
133- uploadCDN ( './dist/av-min.js' , getAVVersion ( ) , ( ) => { } ) ;
134- uploadCDN ( './dist/av-weapp-min.js' , getAVVersion ( ) , ( ) => { } ) ;
135- uploadCDN ( './dist/av.js' , getAVVersion ( ) , ( ) => { } ) ;
136- uploadCDN ( './dist/av-weapp.js' , getAVVersion ( ) , ( ) => { } ) ;
86+ [
87+ './dist/av-min.js' ,
88+ './dist/av-weapp-min.js' ,
89+ './dist/av.js' ,
90+ './dist/av-weapp.js' ,
91+ ] . map ( uploadCDN ) . map ( file => `${ file } .map` ) . map ( uploadCDN ) ;
13792} ) ;
13893
13994// 生成 release 文件
140- gulp . task ( 'release' , [
141- // 生成浏览器版本
95+ gulp . task ( 'build' , [
14296 'clean-dist' ,
14397 'bundle-browser' ,
98+ 'bundle-rn' ,
14499 'bundle-weapp' ,
145100 'uglify' ,
146- // 生成 node 版本
147101 'clean-node' ,
148102 'babel-node'
149103] ) ;
150-
151- // 浏览器开发时使用
152- gulp . task ( 'dev' , [
153- 'clean-dist' ,
154- 'bundle-browser' ,
155- 'babel-demo'
156- ] , ( ) => {
157- browserSync ( {
158- notify : false ,
159- port : 8888 ,
160- server : {
161- baseDir : [ 'demo' ] ,
162- routes : {
163- '/dist' : 'dist'
164- }
165- }
166- } ) ;
167-
168- gulp . watch ( 'src/**/*.js' , [
169- 'clean-dist' ,
170- 'browserify' ,
171- 'babel-browser' ,
172- 'uglify'
173- ] ) ;
174-
175- gulp . watch ( [
176- 'demo/*.html' ,
177- 'demo/*.js' ,
178- 'dist/*.js'
179- ] , [
180- 'babel-demo'
181- ] ) . on ( 'change' , reload ) ;
182- } ) ;
0 commit comments