gulp
unknown
javascript
2 years ago
2.5 kB
8
Indexable
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'));
Editor is loading...