UNPKG

3.78 kBJavaScriptView Raw
1///@ts-check
2'use strict';
3
4
5var gulp = require('gulp');
6var colors = require('ansi-colors');
7var path = require('path');
8
9var taskLog = require('./log/task-log');
10var error = require('./log/error');
11var rainbow = require('./log/rainbow');
12
13var typescript = require('./tasks/typescript');
14var javascript = require('./tasks/javascript');
15var wxts = require('./tasks/wxts');
16var wxss = require('./tasks/wxss');
17var json = require('./tasks/json');
18var wxml = require('./tasks/wxml');
19var image = require('./tasks/image');
20var npm = require('./tasks/npm');
21var copy = require('./tasks/copy');
22var clean = require('./tasks/clean');
23var devtool = require('./tasks/devtool');
24
25const $config = require('./config').default;
26devtool.dist = $config.dist;
27
28exports.$gulp = gulp;
29/**
30 * @param {string[]} tasks
31 */
32exports.$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// compile
44gulp.task('typescript', typescript.build($config));
45gulp.task('javascript', javascript.build($config, ['js']));
46gulp.task('js', gulp.parallel('typescript', 'javascript'));
47
48gulp.task('wxts', wxts.build($config));
49gulp.task('wxjs', javascript.build($config, ['wxs']));
50gulp.task('wxs', gulp.parallel('wxts', 'wxjs'));
51
52gulp.task('wxss', wxss.build($config));
53gulp.task('wxml', wxml.build($config));
54gulp.task('json', json.build($config));
55gulp.task('image', image.build($config));
56gulp.task('copy', copy.build($config));
57gulp.task('npm', npm.build($config));
58
59//devtool cli
60gulp.task('open', devtool.open);
61gulp.task('close', devtool.close);
62gulp.task('quit', devtool.quit);
63gulp.task('upload', devtool.upload);
64gulp.task('auto-preview', devtool.autopreview)
65gulp.task('autopreview', devtool.autopreview)
66gulp.task('try-open', devtool.tryOpen)
67gulp.task('try-quit', devtool.tryQuit)
68
69
70
71
72// watch
73gulp.task('typescript-watch', typescript.watch($config));
74gulp.task('javascript-watch', javascript.watch($config, ['js']));
75gulp.task('js-watch', gulp.parallel('typescript-watch', 'javascript-watch'));
76
77gulp.task('wxts-watch', wxts.watch($config));
78gulp.task('wxjs-watch', javascript.watch($config, ['wxs']));
79gulp.task('wxs-watch', gulp.parallel('wxts-watch', 'wxjs-watch'));
80
81gulp.task('wxss-watch', wxss.watch($config));
82gulp.task('wxml-watch', wxml.watch($config));
83gulp.task('json-watch', json.watch($config));
84gulp.task('image-watch', image.watch($config));
85gulp.task('copy-watch', copy.watch($config));
86gulp.task('npm-watch', npm.watch($config));
87
88gulp.task('clean', clean.build($config));
89
90//编译项目
91gulp.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// 重新生成文件
97gulp.task('build', gulp.series('clean', 'compile'));
98// 监测文件修改
99gulp.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//开发模式
105gulp.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
112gulp.on('error', console.trace);
113gulp.on('error', error('gulp'));