gulpfile.js 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605
  1. var gulp = require('gulp'),
  2. //var deleted = require('gulp-deleted');
  3. del = require('del'),
  4. //uglify = require('gulp-tm-uglify'),
  5. uglify = require('gulp-uglify-es').default,
  6. rename = require('gulp-rename'),
  7. changed = require('gulp-changed'),
  8. gulpif = require('gulp-if'),
  9. minimist = require('minimist'),
  10. ftp = require('gulp-ftp'),
  11. sftp = require('gulp-sftp-up4'),
  12. JSFtp = require('jsftp'),
  13. gutil = require('gulp-util'),
  14. fs = require("fs");
  15. concat = require('gulp-concat');
  16. //let uglify = require('gulp-uglify-es').default;
  17. var through2 = require('through2');
  18. var assetRev = require('gulp-tm-asset-rev');
  19. var apps = require('./gulpapps.js');
  20. var ftpconfig = require('./gulpconfig.js');
  21. var o_options = minimist(process.argv.slice(2), {//upload: local ftp or sftp
  22. string: ["ev", "upload", "location", "host", "user", "pass", "port", "remotePath", "dest", "src"]
  23. });
  24. function getEvOptions(ev){
  25. options.ev = ev;
  26. return (ftpconfig[ev]) || {
  27. 'location': '',
  28. 'host': '',
  29. 'user': '',
  30. 'pass': '',
  31. "port": null,
  32. "remotePath": "",
  33. "dest": "dest",
  34. "upload": ""
  35. }
  36. }
  37. function setOptions(op1, op2){
  38. if (!op2) op2 = {};
  39. options.upload = op1.upload || op2.upload || "";
  40. options.location = op1.location || op2.location || "";
  41. options.host = op1.host || op2.host || "";
  42. options.user = op1.user || op2.user || "";
  43. options.pass = op1.pass || op2.pass || "";
  44. options.port = op1.port || op2.port || "";
  45. options.remotePath = op1.remotePath || op2.remotePath || "";
  46. options.dest = op1.dest || op2.dest || "dest";
  47. }
  48. var options = {};
  49. setOptions(o_options, getEvOptions(o_options.ev));
  50. var appTasks = [];
  51. function createDefaultTask(path, isMin, thisOptions) {
  52. gulp.task(path, function (cb) {
  53. //var srcFile = 'source/' + path + '/**/*';
  54. var option = thisOptions || options;
  55. var src;
  56. var dest = option.dest+'/' + path + '/';
  57. let ev = option.ev
  58. var evList = Object.keys(ftpconfig).map((i)=>{ return (i==ev) ? "*"+i : i; });
  59. if (isMin){
  60. var src_min = ['source/' + path + '/**/*.js', '!**/*.spec.js', '!**/test/**'];
  61. var src_move = ['source/' + path + '/**/*', '!**/*.spec.js', '!**/test/**'];
  62. gutil.log("Move-Uglify", ":", gutil.colors.green(gutil.colors.blue(path), gutil.colors.white('->'), dest));
  63. return gulp.src(src_min)
  64. .pipe(changed(dest))
  65. .pipe(uglify())
  66. .pipe(rename({ extname: '.min.js' }))
  67. .pipe(gulpif((option.upload == 'local' && option.location != ''), gulp.dest(option.location + path + '/')))
  68. .pipe(gulpif((option.upload == 'ftp' && option.host != ''), ftp({
  69. host: option.host,
  70. user: option.user || 'anonymous',
  71. pass: option.pass || '@anonymous',
  72. port: option.port || 21,
  73. remotePath: (option.remotePath || '/') + path
  74. })))
  75. .pipe(gulpif((option.upload == 'sftp' && option.host != ''), sftp({
  76. host: option.host,
  77. user: option.user || 'anonymous',
  78. pass: option.pass || null,
  79. port: option.port || 22,
  80. remotePath: (option.remotePath || '/') + path
  81. })))
  82. .pipe(gulpif((option.ev == "dev" || option.ev == "pro") ,gulp.dest(dest)))
  83. .pipe(gulp.src(src_move))
  84. .pipe(changed(dest))
  85. .pipe(gulpif((option.upload == 'local' && option.location != ''), gulp.dest(option.location + path + '/')))
  86. .pipe(gulpif((option.upload == 'ftp' && option.host != ''), ftp({
  87. host: option.host,
  88. user: option.user || 'anonymous',
  89. pass: option.pass || '@anonymous',
  90. port: option.port || 21,
  91. remotePath: (option.remotePath || '/') + path
  92. })))
  93. .pipe(gulpif((option.upload == 'sftp' && option.host != ''), sftp({
  94. host: option.host,
  95. user: option.user || 'anonymous',
  96. pass: option.pass || null,
  97. port: option.port || 22,
  98. remotePath: (option.remotePath || '/') + path
  99. })))
  100. .pipe(gulp.dest(dest))
  101. .pipe(gutil.noop());
  102. }else{
  103. src = ['source/' + path + '/**/*', '!**/*.spec.js', '!**/test/**'];
  104. gutil.log("Move", ":", gutil.colors.green(gutil.colors.blue(path), gutil.colors.white('->'), dest));
  105. return gulp.src(src)
  106. .pipe(changed(dest))
  107. .pipe(gulpif((option.upload == 'local' && option.location != ''), gulp.dest(option.location + path + '/')))
  108. .pipe(gulpif((option.upload == 'ftp' && option.host != ''), ftp({
  109. host: option.host,
  110. user: option.user || 'anonymous',
  111. pass: option.pass || '@anonymous',
  112. port: option.port || 21,
  113. remotePath: (option.remotePath || '/') + path
  114. })))
  115. .pipe(gulpif((option.upload == 'sftp' && option.host != ''), sftp({
  116. host: option.host,
  117. user: option.user || 'anonymous',
  118. pass: option.pass || null,
  119. port: option.port || 22,
  120. remotePath: (option.remotePath || '/') + path
  121. })))
  122. .pipe(gulp.dest(dest))
  123. .pipe(gutil.noop());
  124. }
  125. });
  126. }
  127. function createXFormConcatTask(path, isMin, thisOptions) {
  128. gulp.task(path+" : concat", function(){
  129. var option = thisOptions || options;
  130. var src = [
  131. 'source/' + path + '/Form.js',
  132. 'source/' + path + '/$Module.js',
  133. 'source/' + path + '/$Input.js',
  134. 'source/' + path + '/Div.js',
  135. 'source/' + path + '/Combox.js',
  136. 'source/' + path + '/DatagridMobile.js',
  137. 'source/' + path + '/DatagridPC.js',
  138. 'source/' + path + '/Textfield.js',
  139. 'source/' + path + '/Personfield.js',
  140. 'source/' + path + '/*.js',
  141. '!source/' + path + '/Office.js'
  142. ];
  143. var dest = option.dest+'/' + path + '/';
  144. return gulp.src(src)
  145. .pipe(concat('$all.js'))
  146. .pipe(gulpif((option.upload == 'local' && option.location != ''), gulp.dest(option.location + path + '/')))
  147. .pipe(gulpif((option.upload == 'ftp' && option.host != ''), ftp({
  148. host: option.host,
  149. user: option.user || 'anonymous',
  150. pass: option.pass || '@anonymous',
  151. port: option.port || 21,
  152. remotePath: (option.remotePath || '/') + path
  153. })))
  154. .pipe(gulpif((option.upload == 'sftp' && option.host != ''), sftp({
  155. host: option.host,
  156. user: option.user || 'anonymous',
  157. pass: option.pass || null,
  158. port: option.port || 22,
  159. remotePath: (option.remotePath || '/') + path
  160. })))
  161. .pipe(gulp.dest(dest))
  162. .pipe(uglify())
  163. .pipe(rename({ extname: '.min.js' }))
  164. .pipe(gulpif((option.upload == 'local' && option.location != ''), gulp.dest(option.location + path + '/')))
  165. .pipe(gulpif((option.upload == 'ftp' && option.host != ''), ftp({
  166. host: option.host,
  167. user: option.user || 'anonymous',
  168. pass: option.pass || '@anonymous',
  169. port: option.port || 21,
  170. remotePath: (option.remotePath || '/') + path
  171. })))
  172. .pipe(gulpif((option.upload == 'sftp' && option.host != ''), sftp({
  173. host: option.host,
  174. user: option.user || 'anonymous',
  175. pass: option.pass || null,
  176. port: option.port || 22,
  177. remotePath: (option.remotePath || '/') + path
  178. })))
  179. .pipe(gulp.dest(dest))
  180. });
  181. }
  182. function createO2ConcatTask(path, isMin, thisOptions) {
  183. gulp.task(path+" : concat", function(){
  184. var option = thisOptions || options;
  185. var src = [
  186. 'source/o2_lib/mootools/mootools-1.6.0_all.js',
  187. 'source/o2_lib/mootools/plugin/mBox.js',
  188. 'source/' + path + '/o2.js'
  189. ];
  190. var dest = option.dest+'/' + path + '/';
  191. return gulp.src(src)
  192. .pipe(concat('o2.js'))
  193. .pipe(gulpif((option.upload == 'local' && option.location != ''), gulp.dest(option.location + path + '/')))
  194. .pipe(gulpif((option.upload == 'ftp' && option.host != ''), ftp({
  195. host: option.host,
  196. user: option.user || 'anonymous',
  197. pass: option.pass || '@anonymous',
  198. port: option.port || 21,
  199. remotePath: (option.remotePath || '/') + path
  200. })))
  201. .pipe(gulpif((option.upload == 'sftp' && option.host != ''), sftp({
  202. host: option.host,
  203. user: option.user || 'anonymous',
  204. pass: option.pass || null,
  205. port: option.port || 22,
  206. remotePath: (option.remotePath || '/') + path
  207. })))
  208. .pipe(gulp.dest(dest))
  209. .pipe(uglify())
  210. .pipe(rename({ extname: '.min.js' }))
  211. .pipe(gulpif((option.upload == 'local' && option.location != ''), gulp.dest(option.location + path + '/')))
  212. .pipe(gulpif((option.upload == 'ftp' && option.host != ''), ftp({
  213. host: option.host,
  214. user: option.user || 'anonymous',
  215. pass: option.pass || '@anonymous',
  216. port: option.port || 21,
  217. remotePath: (option.remotePath || '/') + path
  218. })))
  219. .pipe(gulpif((option.upload == 'sftp' && option.host != ''), sftp({
  220. host: option.host,
  221. user: option.user || 'anonymous',
  222. pass: option.pass || null,
  223. port: option.port || 22,
  224. remotePath: (option.remotePath || '/') + path
  225. })))
  226. .pipe(gulp.dest(dest))
  227. });
  228. gulp.task(path+".xDesktop : concat", function(){
  229. var option = thisOptions || options;
  230. var src = [
  231. 'source/'+path+'/o2/widget/Common.js',
  232. 'source/'+path+'/o2/widget/Dialog.js',
  233. 'source/'+path+'/o2/widget/UUID.js',
  234. 'source/'+path+'/o2/xDesktop/Common.js',
  235. 'source/'+path+'/o2/xDesktop/Actions/RestActions.js',
  236. 'source/'+path+'/o2/xAction/RestActions.js',
  237. 'source/'+path+'/o2/xDesktop/Access.js',
  238. 'source/'+path+'/o2/xDesktop/Dialog.js',
  239. 'source/'+path+'/o2/xDesktop/Menu.js',
  240. 'source/'+path+'/o2/xDesktop/UserData.js',
  241. 'source/x_component_Template/MPopupForm.js',
  242. 'source/'+path+'/o2/xDesktop/Authentication.js',
  243. 'source/'+path+'/o2/xDesktop/Dialog.js',
  244. 'source/'+path+'/o2/xDesktop/Window.js',
  245. 'source/x_component_Common/Main.js'
  246. ];
  247. var dest = option.dest+'/' + path + '/o2/xDesktop/';
  248. return gulp.src(src)
  249. .pipe(concat('$all.js'))
  250. .pipe(gulpif((option.upload == 'local' && option.location != ''), gulp.dest(option.location + path + '/o2/xDesktop/')))
  251. .pipe(gulpif((option.upload == 'ftp' && option.host != ''), ftp({
  252. host: option.host,
  253. user: option.user || 'anonymous',
  254. pass: option.pass || '@anonymous',
  255. port: option.port || 21,
  256. remotePath: (option.remotePath || '/') + path+"/o2/xDesktop/"
  257. })))
  258. .pipe(gulpif((option.upload == 'sftp' && option.host != ''), sftp({
  259. host: option.host,
  260. user: option.user || 'anonymous',
  261. pass: option.pass || null,
  262. port: option.port || 22,
  263. remotePath: (option.remotePath || '/') + path+"/o2/xDesktop/"
  264. })))
  265. .pipe(gulp.dest(dest))
  266. .pipe(uglify())
  267. .pipe(rename({ extname: '.min.js' }))
  268. .pipe(gulpif((option.upload == 'local' && option.location != ''), gulp.dest(option.location + path + '/o2/xDesktop/')))
  269. .pipe(gulpif((option.upload == 'ftp' && option.host != ''), ftp({
  270. host: option.host,
  271. user: option.user || 'anonymous',
  272. pass: option.pass || '@anonymous',
  273. port: option.port || 21,
  274. remotePath: (option.remotePath || '/') + path+"/o2/xDesktop/"
  275. })))
  276. .pipe(gulpif((option.upload == 'sftp' && option.host != ''), sftp({
  277. host: option.host,
  278. user: option.user || 'anonymous',
  279. pass: option.pass || null,
  280. port: option.port || 22,
  281. remotePath: (option.remotePath || '/') + path+"/o2/xDesktop/"
  282. })))
  283. .pipe(gulp.dest(dest))
  284. });
  285. gulp.task(path+" : bundle", function(){
  286. var option = thisOptions || options;
  287. var src = [
  288. 'source/o2_lib/mootools/mootools-1.6.0_all.js',
  289. 'source/o2_lib/mootools/plugin/mBox.js',
  290. 'source/' + path + '/o2.js',
  291. 'source/x_desktop/js/base.js',
  292. "source/o2_core/o2/framework.js"
  293. ];
  294. var dest = option.dest+'/' + path + '/';
  295. return gulp.src(src)
  296. .pipe(concat('bundle.js'))
  297. .pipe(gulpif((option.upload == 'local' && option.location != ''), gulp.dest(option.location + path + '/')))
  298. .pipe(gulpif((option.upload == 'ftp' && option.host != ''), ftp({
  299. host: option.host,
  300. user: option.user || 'anonymous',
  301. pass: option.pass || '@anonymous',
  302. port: option.port || 21,
  303. remotePath: (option.remotePath || '/') + path
  304. })))
  305. .pipe(gulpif((option.upload == 'sftp' && option.host != ''), sftp({
  306. host: option.host,
  307. user: option.user || 'anonymous',
  308. pass: option.pass || null,
  309. port: option.port || 22,
  310. remotePath: (option.remotePath || '/') + path
  311. })))
  312. .pipe(gulp.dest(dest))
  313. .pipe(uglify())
  314. .pipe(rename({ extname: '.min.js' }))
  315. .pipe(gulpif((option.upload == 'local' && option.location != ''), gulp.dest(option.location + path + '/')))
  316. .pipe(gulpif((option.upload == 'ftp' && option.host != ''), ftp({
  317. host: option.host,
  318. user: option.user || 'anonymous',
  319. pass: option.pass || '@anonymous',
  320. port: option.port || 21,
  321. remotePath: (option.remotePath || '/') + path
  322. })))
  323. .pipe(gulpif((option.upload == 'sftp' && option.host != ''), sftp({
  324. host: option.host,
  325. user: option.user || 'anonymous',
  326. pass: option.pass || null,
  327. port: option.port || 22,
  328. remotePath: (option.remotePath || '/') + path
  329. })))
  330. .pipe(gulp.dest(dest))
  331. });
  332. }
  333. function getAppTask(path, isMin, thisOptions) {
  334. if (path==="x_component_process_Xform"){
  335. createDefaultTask(path, isMin, thisOptions);
  336. createXFormConcatTask(path, isMin, thisOptions);
  337. return gulp.series(path, path+" : concat");
  338. }else if (path==="o2_core"){
  339. createDefaultTask(path, isMin, thisOptions);
  340. createO2ConcatTask(path, isMin, thisOptions);
  341. return gulp.series(path, path+" : concat", path+".xDesktop : concat", path+" : bundle");
  342. }else{
  343. createDefaultTask(path, isMin, thisOptions);
  344. return gulp.series(path);
  345. }
  346. }
  347. //var taskObj = {};
  348. apps.map(function (app) {
  349. var taskName;
  350. var isMin = (app.tasks.indexOf("min")!==-1);
  351. taskName = app.folder;
  352. appTasks.push(taskName);
  353. gulp.task(taskName, getAppTask(app.folder, isMin));
  354. // //var isMin = (app.tasks.indexOf("min")!==-1);
  355. // taskName = app.folder+"_release";
  356. // //appTasks.push(taskName);
  357. // gulp.task(taskName, getAppTask(app.folder, isMin, release_options));
  358. });
  359. // Object.keys(taskObj).map(function(k){
  360. // exports[k] = parallel(taskObj[k]);
  361. // });
  362. //exports[app.folder] = parallel(minTask, moveTask);
  363. function getCleanTask(path) {
  364. return function (cb) {
  365. if (path){
  366. var dest = (path=="/") ? options.dest+"/" : options.dest+'/' + path + '/';
  367. gutil.log("Clean", ":", gutil.colors.red(dest));
  368. del.sync(dest, cb);
  369. cb();
  370. }else{
  371. cb();
  372. }
  373. }
  374. }
  375. function cleanRemoteFtp(f, cb) {
  376. var file = options.remotePath + f;
  377. var ftp = new JSFtp({
  378. host: options.host,
  379. user: options.user || 'anonymous',
  380. pass: options.pass || null,
  381. port: options.port || 21
  382. });
  383. ftp.raw('dele ' + file, function (err) {
  384. if (err) { cb(); return; }
  385. if (file.substring(file.length - 3).toLowerCase() == ".js") {
  386. file = file.replace('.js', ".min.js");
  387. ftp.raw('dele ' + file, function (err) {
  388. if (err) { cb(); return; }
  389. if (file.indexOf("/") != -1) {
  390. var p = file.substring(0, file.lastIndexOf("/"));
  391. ftp.raw('rmd ' + p, function (err) {
  392. if (err) { cb(); return; }
  393. ftp.raw.quit();
  394. cb();
  395. });
  396. }
  397. });
  398. } else {
  399. if (file.indexOf("/") != -1) {
  400. var pPath = file.substring(0, file.lastIndexOf("/"));
  401. ftp.raw('rmd ' + pPath, function (err) {
  402. if (err) { cb(); return; }
  403. ftp.raw.quit();
  404. cb();
  405. });
  406. }
  407. }
  408. });
  409. }
  410. function cleanRemoteLocal(f, cb) {
  411. var file = options.location + f;
  412. del(file, { force: true, dryRun: true }, function () {
  413. if (file.substring(file.length - 3).toLowerCase() == ".js") {
  414. var minfile = file.replace('.js', ".min.js");
  415. del(minfile, { force: true, dryRun: true }, function () {
  416. var p = file.substring(0, file.lastIndexOf("/"));
  417. fs.rmdir(p, function (err) {
  418. if (err) { }
  419. cb();
  420. })
  421. });
  422. } else {
  423. var p = file.substring(0, file.lastIndexOf("/"));
  424. fs.rmdir(p, function (err) {
  425. if (err) { }
  426. cb();
  427. })
  428. }
  429. });
  430. }
  431. function getCleanRemoteTask(path) {
  432. return function (cb) {
  433. if (options.upload) {
  434. var file = path.replace(/\\/g, "/");
  435. file = file.substring(file.indexOf("source/") + 7);
  436. if (options.upload == 'local' && options.location != '') cleanRemoteLocal(file, cb);
  437. if (options.upload == 'ftp' && options.host != '') cleanRemoteFtp(file, cb);
  438. } else {
  439. if (cb) cb();
  440. }
  441. }
  442. }
  443. function getWatchTask(path) {
  444. return (path) ? function (cb) {
  445. gutil.log("watch", ":", gutil.colors.green(path, "is watching ..."));
  446. gulp.watch(['source/' + path + '/**/*', "!./**/test/**"], { "events": ['addDir', 'add', 'change'] }, gulp.parallel([path]));
  447. } : function(cb){cb();};
  448. }
  449. gulp.task("clean", getCleanTask(options.src))
  450. gulp.task("watch", getWatchTask(options.src));
  451. gulp.task("index", function () {
  452. var src = ['source/favicon.ico', 'source/index.html'];
  453. var dest = options.dest;
  454. return gulp.src(src)
  455. .pipe(changed(dest))
  456. .pipe(gulpif((options.upload == 'local' && options.location != ''), gulp.dest(options.location + '/')))
  457. .pipe(gulpif((options.upload == 'ftp' && options.host != ''), ftp({
  458. host: options.host,
  459. user: options.user || 'anonymous',
  460. pass: options.pass || '@anonymous',
  461. port: options.port || 21,
  462. remotePath: (options.remotePath || '/')
  463. })))
  464. .pipe(gulpif((options.upload == 'sftp' && options.host != ''), ftp({
  465. host: options.host,
  466. user: options.user || 'anonymous',
  467. pass: options.pass || null,
  468. port: options.port || 22,
  469. remotePath: (options.remotePath || '/')
  470. })))
  471. .pipe(gulp.dest(dest))
  472. .pipe(gutil.noop());
  473. });
  474. gulp.task("cleanAll", getCleanTask('/'));
  475. gulp.task("o2:new-v:html", function () {
  476. var path = "x_desktop";
  477. var src = 'source/x_desktop/*.html';
  478. var dest = options.dest + '/x_desktop/';
  479. return gulp.src(src)
  480. .pipe(assetRev())
  481. .pipe(gulpif((options.upload == 'local' && options.location != ''), gulp.dest(options.location + path + '/')))
  482. .pipe(gulpif((options.upload == 'ftp' && options.host != ''), ftp({
  483. host: options.host,
  484. user: options.user || 'anonymous',
  485. pass: options.pass || '@anonymous',
  486. port: options.port || 21,
  487. remotePath: (options.remotePath || '/') + path
  488. })))
  489. .pipe(gulpif((options.upload == 'sftp' && options.host != ''), sftp({
  490. host: options.host,
  491. user: options.user || 'anonymous',
  492. pass: options.pass || null,
  493. port: options.port || 22,
  494. remotePath: (options.remotePath || '/') + path
  495. })))
  496. .pipe(gulp.dest(dest))
  497. .pipe(gutil.noop());
  498. });
  499. gulp.task("o2:new-v:o2", function () {
  500. var path = "o2_core";
  501. var src = 'source/o2_core/o2.js';
  502. var dest = options.dest +'/o2_core/';
  503. return gulp.src(src)
  504. .pipe(assetRev())
  505. .pipe(gulpif((options.upload == 'local' && options.location != ''), gulp.dest(options.location + path + '/')))
  506. .pipe(gulpif((options.upload == 'ftp' && options.host != ''), ftp({
  507. host: options.host,
  508. user: options.user || 'anonymous',
  509. pass: options.pass || '@anonymous',
  510. port: options.port || 21,
  511. remotePath: (options.remotePath || '/') + path
  512. })))
  513. .pipe(gulpif((options.upload == 'sftp' && options.host != ''), sftp({
  514. host: options.host,
  515. user: options.user || 'anonymous',
  516. pass: options.pass || null,
  517. port: options.port || 22,
  518. remotePath: (options.remotePath || '/') + path
  519. })))
  520. .pipe(gulp.dest(dest))
  521. .pipe(uglify())
  522. .pipe(rename({ extname: '.min.js' }))
  523. .pipe(gulpif((options.upload == 'local' && options.location != ''), gulp.dest(options.location + path + '/')))
  524. .pipe(gulpif((options.upload == 'ftp' && options.host != ''), ftp({
  525. host: options.host,
  526. user: options.user || 'anonymous',
  527. pass: options.pass || '@anonymous',
  528. port: options.port || 21,
  529. remotePath: (options.remotePath || '/') + path
  530. })))
  531. .pipe(gulpif((options.upload == 'sftp' && options.host != ''), sftp({
  532. host: options.host,
  533. user: options.user || 'anonymous',
  534. pass: options.pass || null,
  535. port: options.port || 22,
  536. remotePath: (options.remotePath || '/') + path
  537. })))
  538. .pipe(gulp.dest(dest))
  539. .pipe(gutil.noop());
  540. });
  541. gulp.task("o2:new-v", gulp.parallel("o2:new-v:o2", "o2:new-v:html"));
  542. gulp.task("git_clean", function (cb) {
  543. var dest = 'D:/O2/github/huqi1980/o2oa/o2web/source/';
  544. del(dest, { dryRun: true, force: true }, cb);
  545. });
  546. gulp.task("git_dest", function () {
  547. var dest = "D:/O2/github/huqi1980/o2oa/o2web/source";
  548. return gulp.src(["source/**/*", "!./**/test/**"])
  549. .pipe(changed(dest))
  550. .pipe(gulp.dest(dest))
  551. });
  552. gulp.task("git", gulp.series('git_clean', 'git_dest'));
  553. gulp.task("default", gulp.series(gulp.parallel(appTasks, 'index'), "o2:new-v"));
  554. function build(){
  555. options.ev = "p";
  556. options.upload = o_options.upload || "";
  557. options.location = o_options.location || uploadOptions.location;
  558. options.host = o_options.host || uploadOptions.host;
  559. options.user = o_options.user || uploadOptions.user;
  560. options.pass = o_options.pass || uploadOptions.pass;
  561. options.port = o_options.port || uploadOptions.port;
  562. options.remotePath = o_options.remotePath || uploadOptions.remotePath;
  563. options.dest = o_options.dest || uploadOptions.dest || "dest";
  564. };
  565. gulp.task("build", gulp.series("clean", gulp.parallel(appTasks, 'index'), "o2:new-v"))