forked from react-querybuilder/react-querybuilder
-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathgulpfile.js
97 lines (82 loc) · 2.13 KB
/
gulpfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
const gulp = require('gulp');
const babel = require('gulp-babel');
const sass = require('gulp-sass');
const less = require('gulp-less');
const concat = require("gulp-concat");
const ts = require('gulp-typescript');
const del = require('del');
const babelrc = require('./.babelrc.js');
sass.compiler = require('node-sass');
function cleanDist() {
return del([
'./dist',
'./css',
'./assets',
])
}
function compileBabel() {
return gulp.src(['src/**/*.tsx','src/**/*.ts'])
.pipe(babel())
.pipe(gulp.dest('dist/react'))
}
function compileBabelPreact() {
const babelRcPreact = {
...babelrc,
plugins: babelrc.plugins.concat([
[
"module-resolver",
{
"root": [
"."
],
"alias": {
"react": "preact-compat",
"react-dom": "preact-compat",
"create-react-class": "preact-compat/lib/create-react-class",
"react-dom-factories": "preact-compat/lib/react-dom-factories"
}
}
]
])
}
return gulp.src(['src/**/*.tsx', 'src/**/*.ts'])
.pipe(babel(babelRcPreact))
.pipe(gulp.dest('dist/preact'))
}
function buildTypes() {
var tsProject = ts.createProject('./tsconfig.json', {
declaration: true,
});
var tsResult = tsProject.src()
.pipe(tsProject());
return tsResult.dts.pipe(gulp.dest('./dist/types'));
}
function concatTypes() {
return gulp
.src([
'dist/types/**/*.d.ts'
])
.pipe(concat("index.d.ts"))
.pipe(gulp.dest("./dist"));
}
function compileSCSS() {
return gulp.src('src/styles/*.scss')
.pipe(sass().on('error', sass.logError))
.pipe(gulp.dest('css'));
}
function compileLess() {
return gulp.src(`./src/*.less`).pipe(less()).pipe(gulp.dest(`./css`));
}
function copyCSS() {
return gulp.src(['src/styles/*.css'])
.pipe(gulp.dest('css/'))
}
function copyIcons() {
return gulp.src(['src/icons/*.svg', 'src/icons/*.png'])
.pipe(gulp.dest('assets/icons/'))
}
const compileCSS = gulp.series(compileLess, copyCSS);
const copyAssets = gulp.series(copyIcons);
const compileTS = gulp.series(compileBabel, compileBabelPreact);
// const generateTypes = gulp.series(buildTypes, concatTypes);
exports.build = gulp.series(cleanDist, compileCSS, compileTS, copyAssets);