UNPKG

3.54 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
23exports.$config = {
24 release: false,
25 src: 'src',
26 dist: 'dist',
27 assets: 'assets',
28 exclude: '',
29 copy: '',
30 tsconfig: 'tsconfig.json',
31 var: {
32 }
33};
34exports.$gulp = gulp;
35/**
36 * @param {string[]} tasks
37 */
38exports.$execute = function (tasks) {
39 exports.$config.src = path.normalize(exports.$config.src);
40 exports.$config.dist = path.normalize(exports.$config.dist);
41 gulp.series(tasks)(function (err) {
42 if (err) {
43 console.error(JSON.stringify(err));
44 throw err;
45 }
46 });
47}
48
49// compile
50gulp.task('typescript', typescript.build(exports.$config));
51gulp.task('javascript', javascript.build(exports.$config, ['js']));
52gulp.task('js', gulp.parallel('typescript', 'javascript'));
53
54gulp.task('wxts', wxts.build(exports.$config));
55gulp.task('wxjs', javascript.build(exports.$config, ['wxs']));
56gulp.task('wxs', gulp.parallel('wxts', 'wxjs'));
57
58gulp.task('wxss', wxss.build(exports.$config));
59gulp.task('wxml', wxml.build(exports.$config));
60gulp.task('json', json.build(exports.$config));
61gulp.task('image', image.build(exports.$config));
62gulp.task('copy', copy.build(exports.$config));
63gulp.task('npm', npm.build(exports.$config));
64
65// watch
66gulp.task('typescript-watch', typescript.watch(exports.$config));
67gulp.task('javascript-watch', javascript.watch(exports.$config, ['js']));
68gulp.task('js-watch', gulp.parallel('typescript-watch', 'javascript-watch'));
69
70gulp.task('wxts-watch', wxts.watch(exports.$config));
71gulp.task('wxjs-watch', javascript.watch(exports.$config, ['wxs']));
72gulp.task('wxs-watch', gulp.parallel('wxts-watch', 'wxjs-watch'));
73
74gulp.task('wxss-watch', wxss.watch(exports.$config));
75gulp.task('wxml-watch', wxml.watch(exports.$config));
76gulp.task('json-watch', json.watch(exports.$config));
77gulp.task('image-watch', image.watch(exports.$config));
78gulp.task('copy-watch', copy.watch(exports.$config));
79gulp.task('npm-watch', npm.watch(exports.$config));
80
81gulp.task('clean', clean.build(exports.$config));
82
83//编译项目
84gulp.task('compile', gulp.series(
85 taskLog(rainbow("↓↓↓↓↓↓"), 'start compile:', colors.cyan.bold.underline(exports.$config.src), '→', colors.green.bold.underline(exports.$config.dist), rainbow("↓↓↓↓↓↓")),
86 gulp.parallel('js', 'wxs', 'wxss', 'wxml', 'json', 'image', 'copy', 'npm'),
87 taskLog(rainbow("↑↑↑↑↑↑"), colors.greenBright.bold('√ All compilation tasks done!'), rainbow("↑↑↑↑↑↑"))
88))
89// 重新生成文件
90gulp.task('build', gulp.series('clean', 'compile'));
91// 监测文件修改
92gulp.task('watch', gulp.series(
93 gulp.parallel('js-watch', 'wxs-watch', 'wxss-watch', 'wxml-watch', 'json-watch', 'image-watch', 'copy-watch', 'npm-watch'),
94 taskLog(rainbow('All watching tasks started ...')))
95);
96
97//开发模式
98gulp.task('dev', gulp.series('build', 'watch'));
99
100gulp.on('error', console.trace);
101gulp.on('error', error('gulp'));
102