1 |
|
2 | 'use strict';
|
3 |
|
4 |
|
5 | var gulp = require('gulp');
|
6 | var colors = require('ansi-colors');
|
7 | var path = require('path');
|
8 |
|
9 | var taskLog = require('./log/task-log');
|
10 | var error = require('./log/error');
|
11 | var rainbow = require('./log/rainbow');
|
12 |
|
13 | var typescript = require('./tasks/typescript');
|
14 | var javascript = require('./tasks/javascript');
|
15 | var wxts = require('./tasks/wxts');
|
16 | var wxss = require('./tasks/wxss');
|
17 | var json = require('./tasks/json');
|
18 | var wxml = require('./tasks/wxml');
|
19 | var image = require('./tasks/image');
|
20 | var npm = require('./tasks/npm');
|
21 | var copy = require('./tasks/copy');
|
22 | var clean = require('./tasks/clean');
|
23 | var devtool = require('./tasks/devtool');
|
24 |
|
25 | const $config = require('./config').default;
|
26 | devtool.dist = $config.dist;
|
27 |
|
28 | exports.$gulp = gulp;
|
29 |
|
30 |
|
31 |
|
32 | exports.$execute = function (tasks) {
|
33 | $config.src = path.normalize($config.src);
|
34 | $config.dist = path.normalize($config.dist);
|
35 | gulp.series(tasks)(function (err) {
|
36 | if (err) {
|
37 | console.error(JSON.stringify(err));
|
38 | throw err;
|
39 | }
|
40 | });
|
41 | }
|
42 |
|
43 |
|
44 | gulp.task('typescript', typescript.build($config));
|
45 | gulp.task('javascript', javascript.build($config, ['js']));
|
46 | gulp.task('js', gulp.parallel('typescript', 'javascript'));
|
47 |
|
48 | gulp.task('wxts', wxts.build($config));
|
49 | gulp.task('wxjs', javascript.build($config, ['wxs']));
|
50 | gulp.task('wxs', gulp.parallel('wxts', 'wxjs'));
|
51 |
|
52 | gulp.task('wxss', wxss.build($config));
|
53 | gulp.task('wxml', wxml.build($config));
|
54 | gulp.task('json', json.build($config));
|
55 | gulp.task('image', image.build($config));
|
56 | gulp.task('copy', copy.build($config));
|
57 | gulp.task('npm', npm.build($config));
|
58 |
|
59 |
|
60 | gulp.task('open', devtool.open);
|
61 | gulp.task('close', devtool.close);
|
62 | gulp.task('quit', devtool.quit);
|
63 | gulp.task('upload', devtool.upload);
|
64 | gulp.task('auto-preview', devtool.autopreview)
|
65 | gulp.task('autopreview', devtool.autopreview)
|
66 | gulp.task('try-open', devtool.tryOpen)
|
67 | gulp.task('try-quit', devtool.tryQuit)
|
68 |
|
69 |
|
70 |
|
71 |
|
72 |
|
73 | gulp.task('typescript-watch', typescript.watch($config));
|
74 | gulp.task('javascript-watch', javascript.watch($config, ['js']));
|
75 | gulp.task('js-watch', gulp.parallel('typescript-watch', 'javascript-watch'));
|
76 |
|
77 | gulp.task('wxts-watch', wxts.watch($config));
|
78 | gulp.task('wxjs-watch', javascript.watch($config, ['wxs']));
|
79 | gulp.task('wxs-watch', gulp.parallel('wxts-watch', 'wxjs-watch'));
|
80 |
|
81 | gulp.task('wxss-watch', wxss.watch($config));
|
82 | gulp.task('wxml-watch', wxml.watch($config));
|
83 | gulp.task('json-watch', json.watch($config));
|
84 | gulp.task('image-watch', image.watch($config));
|
85 | gulp.task('copy-watch', copy.watch($config));
|
86 | gulp.task('npm-watch', npm.watch($config));
|
87 |
|
88 | gulp.task('clean', clean.build($config));
|
89 |
|
90 |
|
91 | gulp.task('compile', gulp.series(
|
92 | taskLog(rainbow("↓↓↓↓↓↓"), 'start compile:', colors.cyan.bold.underline($config.src), '→', colors.green.bold.underline($config.dist), rainbow("↓↓↓↓↓↓")),
|
93 | gulp.parallel('js', 'wxs', 'wxss', 'wxml', 'json', 'image', 'copy', 'npm'),
|
94 | taskLog(rainbow("↑↑↑↑↑↑"), colors.greenBright.bold(colors.symbols.check + ' All compilation tasks done!'), rainbow("↑↑↑↑↑↑"))
|
95 | ))
|
96 |
|
97 | gulp.task('build', gulp.series('clean', 'compile'));
|
98 |
|
99 | gulp.task('watch', gulp.series(
|
100 | gulp.parallel('js-watch', 'wxs-watch', 'wxss-watch', 'wxml-watch', 'json-watch', 'image-watch', 'copy-watch', 'npm-watch'),
|
101 | taskLog(colors.greenBright.bold('\tAll watch tasks started !')))
|
102 | );
|
103 |
|
104 |
|
105 | gulp.task('dev', gulp.series(
|
106 | 'try-quit',
|
107 | 'clean', 'compile',
|
108 | gulp.parallel('try-open', 'watch'),
|
109 | taskLog(colors.inverse(rainbow('all tasks are ready, waiting for code change ...')))
|
110 | ));
|
111 |
|
112 | gulp.on('error', console.trace);
|
113 | gulp.on('error', error('gulp'));
|