gulp
javascript
a month ago
2.5 kB
2
Indexable
Never
const gulp = require('gulp'); const sass = require('gulp-sass')(require('sass')); const ts = require('gulp-typescript'); const postcss = require('gulp-postcss'); const tailwindcss = require('tailwindcss'); const autoprefixer = require('autoprefixer'); const terser = require('gulp-terser'); const cleanCSS = require('gulp-clean-css'); //* copy html gulp.task('html:copy', function () { return gulp.src('./*.html') .pipe(gulp.dest('./dist')); }); //* copy font gulp.task('font:copy', function () { return gulp.src('./assets/font/*.woff2') .pipe(gulp.dest('./dist/assets/font')); }); // * compress image gulp.task('img:compress', function () { return import('gulp-imagemin').then(function (imagemin) { return gulp.src("./assets/img/**/*") .pipe(imagemin.default()) .pipe(gulp.dest("./dist/assets/img")); }); }); // * compress icon gulp.task('icon:compress', function () { return import('gulp-imagemin').then(function (imagemin) { return gulp.src("./assets/icon/**/*") .pipe(imagemin.default()) .pipe(gulp.dest("./dist/assets/icon")); }); }); //* compile typescript const tsProject = ts.createProject('tsconfig.json'); gulp.task('typescript:compile', function () { return tsProject.src() .pipe(tsProject()) .js .pipe(terser()) .pipe(gulp.dest('./dist/assets/js')); }); gulp.task('typescript:watch', function () { gulp.watch('./assets/ts/**/*.ts', gulp.series('typescript:compile')); }); //* compile sass gulp.task('sass:compile', function () { return gulp.src('./assets/scss/**/*.scss') .pipe(sass().on('error', sass.logError)) .pipe(postcss([autoprefixer()])) .pipe(cleanCSS()) .pipe(gulp.dest('./dist/assets/css')); }); gulp.task('sass:watch', function () { gulp.watch('./assets/scss/**/*.scss', gulp.series('sass:compile')); }); //* compile tailwind gulp.task('tailwind:compile', function () { return gulp.src('./assets/css/global/tailwind.css') .pipe(postcss([tailwindcss()])) .pipe(cleanCSS()) .pipe(gulp.dest('./dist/assets/css/global')); }); gulp.task('tailwind:watch', function () { gulp.watch('./assets/css/global/tailwind.css', gulp.series('tailwind:compile')); }); //* run tasks gulp.task('default', gulp.parallel('html:copy','font:copy', 'img:compress', 'icon:compress', 'typescript:compile', 'typescript:watch', 'sass:compile', 'sass:watch', 'tailwind:compile', 'tailwind:watch'));