UNPKG

3.19 kBJavaScriptView Raw
1///@ts-check
2'use strict';
3
4var gulp = require('gulp');
5var colors = require('ansi-colors');
6var path = require('path');
7
8var taskLog = require('./log/task-log');
9var error = require('./log/error');
10var rainbow = require('./log/rainbow');
11
12var typescript = require('./tasks/typescript');
13var javascript = require('./tasks/javascript');
14var wxts = require('./tasks/wxts');
15var wxss = require('./tasks/wxss');
16var json = require('./tasks/json');
17var wxml = require('./tasks/wxml');
18var image = require('./tasks/image');
19var npm = require('./tasks/npm');
20var copy = require('./tasks/copy');
21var clean = require('./tasks/clean');
22
23const $config = require('./config').default;
24
25exports.$gulp = gulp;
26/**
27 * @param {string[]} tasks
28 */
29exports.$execute = function (tasks) {
30 $config.src = path.normalize($config.src);
31 $config.dist = path.normalize($config.dist);
32 gulp.series(tasks)(function (err) {
33 if (err) {
34 console.error(JSON.stringify(err));
35 throw err;
36 }
37 });
38}
39
40// compile
41gulp.task('typescript', typescript.build($config));
42gulp.task('javascript', javascript.build($config, ['js']));
43gulp.task('js', gulp.parallel('typescript', 'javascript'));
44
45gulp.task('wxts', wxts.build($config));
46gulp.task('wxjs', javascript.build($config, ['wxs']));
47gulp.task('wxs', gulp.parallel('wxts', 'wxjs'));
48
49gulp.task('wxss', wxss.build($config));
50gulp.task('wxml', wxml.build($config));
51gulp.task('json', json.build($config));
52gulp.task('image', image.build($config));
53gulp.task('copy', copy.build($config));
54gulp.task('npm', npm.build($config));
55
56// watch
57gulp.task('typescript-watch', typescript.watch($config));
58gulp.task('javascript-watch', javascript.watch($config, ['js']));
59gulp.task('js-watch', gulp.parallel('typescript-watch', 'javascript-watch'));
60
61gulp.task('wxts-watch', wxts.watch($config));
62gulp.task('wxjs-watch', javascript.watch($config, ['wxs']));
63gulp.task('wxs-watch', gulp.parallel('wxts-watch', 'wxjs-watch'));
64
65gulp.task('wxss-watch', wxss.watch($config));
66gulp.task('wxml-watch', wxml.watch($config));
67gulp.task('json-watch', json.watch($config));
68gulp.task('image-watch', image.watch($config));
69gulp.task('copy-watch', copy.watch($config));
70gulp.task('npm-watch', npm.watch($config));
71
72gulp.task('clean', clean.build($config));
73
74//编译项目
75gulp.task('compile', gulp.series(
76 taskLog(rainbow("↓↓↓↓↓↓"), 'start compile:', colors.cyan.bold.underline($config.src), '→', colors.green.bold.underline($config.dist), rainbow("↓↓↓↓↓↓")),
77 gulp.parallel('js', 'wxs', 'wxss', 'wxml', 'json', 'image', 'copy', 'npm'),
78 taskLog(rainbow("↑↑↑↑↑↑"), colors.greenBright.bold('√ All compilation tasks done!'), rainbow("↑↑↑↑↑↑"))
79))
80// 重新生成文件
81gulp.task('build', gulp.series('clean', 'compile'));
82// 监测文件修改
83gulp.task('watch', gulp.series(
84 gulp.parallel('js-watch', 'wxs-watch', 'wxss-watch', 'wxml-watch', 'json-watch', 'image-watch', 'copy-watch', 'npm-watch'),
85 taskLog(rainbow('All watching tasks started ...')))
86);
87
88//开发模式
89gulp.task('dev', gulp.series('build', 'watch'));
90
91gulp.on('error', console.trace);
92gulp.on('error', error('gulp'));
93