added gulp build

This commit is contained in:
Daniel
2021-05-17 08:42:33 +05:30
parent be71fb2963
commit e90d2c133c
4 changed files with 104 additions and 54 deletions

View File

@@ -3,7 +3,6 @@
/* eslint-disable no-undef */
/* eslint-disable unicorn/prefer-module */
// const autoprefixer = require('autoprefixer')
const browserSync = require('browser-sync').create()
const cleanCss = require('gulp-clean-css')
const del = require('del')
@@ -12,12 +11,12 @@ const npmDist = require('gulp-npm-dist')
const sass = require('gulp-sass')
const wait = require('gulp-wait')
const postcss = require('gulp-postcss')
// const rtlcss = require('rtlcss')
const rename = require('gulp-rename')
const sourcemaps = require('gulp-sourcemaps')
const fileinclude = require('gulp-file-include')
const esbuild = require('esbuild')
// const { getTarget } = require('./get.browserslist.target')
sass.compiler = require('sass')
const pkg = require('./package')
const year = new Date().getFullYear()
@@ -64,7 +63,12 @@ const paths = {
}
}
function postcssCallback() {
const sassOptions = {
outputStyle: 'expanded',
includePaths: ['./node_modules/']
}
function postcssOptions() {
return {
map: {
inline: false,
@@ -79,16 +83,29 @@ function postcssCallback() {
}
}
function postcssRtlOptions() {
return {
map: {
inline: false,
annotation: true,
sourcesContent: true
},
plugins: [
require('autoprefixer')({
cascade: false
}),
require('rtlcss')({})
]
}
}
// Compile SCSS
gulp.task('scss', () => {
return gulp.src(paths.src.scss + '/adminlte.scss')
.pipe(wait(500))
.pipe(sourcemaps.init())
.pipe(sass({
outputStyle: 'expanded',
includePaths: ['./node_modules/']
}).on('error', sass.logError))
.pipe(postcss(postcssCallback))
.pipe(sass(sassOptions).on('error', sass.logError))
.pipe(postcss(postcssOptions))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest(paths.temp.css))
.pipe(browserSync.stream())
@@ -101,7 +118,6 @@ gulp.task('ts', () => {
js: banner
},
bundle: true,
color: true,
format: 'iife',
sourcemap: true,
target: ['chrome60'],
@@ -161,14 +177,31 @@ gulp.task('serve', gulp.series('scss', 'ts', 'html', 'index', 'assets', 'vendor'
}))
// Minify CSS
gulp.task('minify:css', () => {
gulp.task('minify:dist:css', () => {
return gulp.src([
paths.dist.css + '/adminlte.css'
])
paths.dist.css + '/**/*.css'
], { base: paths.dist.css })
.pipe(sourcemaps.init({ loadMaps: true }))
.pipe(cleanCss())
.pipe(rename({ suffix: '.min' }))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest(paths.dist.css))
})
// Minify JS
gulp.task('minify:dist:js', () => {
return esbuild.build({
entryPoints: [paths.dist.js + '/adminlte.js'],
format: 'iife',
minify: true,
sourcemap: true,
target: ['chrome60'],
outfile: paths.dist.js + '/adminlte.min.js'
}).catch(
error => console.error(error)
)
})
// Copy assets
gulp.task('copy:dist:assets', () => {
return gulp.src(paths.src.assets)
@@ -185,15 +218,52 @@ gulp.task('copy:dist:css', () => {
return gulp.src([paths.src.scss + '/adminlte.scss'])
.pipe(wait(500))
.pipe(sourcemaps.init())
.pipe(sass({
outputStyle: 'expanded',
includePaths: ['./node_modules/']
}).on('error', sass.logError))
.pipe(postcss(postcssCallback))
.pipe(sass(sassOptions).on('error', sass.logError))
.pipe(postcss(postcssOptions))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest(paths.dist.css))
})
gulp.task('copy:dist:css:dark', () => {
return gulp.src([paths.src.scss + '/dark/*.scss'])
.pipe(wait(500))
.pipe(sourcemaps.init())
.pipe(sass(sassOptions).on('error', sass.logError))
.pipe(postcss(postcssOptions))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest(paths.dist.css + '/dark'))
})
gulp.task('copy:dist:css:rtl', () => {
return gulp.src([
paths.dist.css + '/*.css',
paths.dist.css + '/dark/*.css'
])
.pipe(wait(500))
.pipe(sourcemaps.init({ loadMaps: true }))
.pipe(postcss(postcssRtlOptions))
.pipe(rename({ suffix: '.rtl' }))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest(paths.dist.css + '/rtl'))
})
// Compile and copy ts/js
gulp.task('copy:dist:js', () => {
return esbuild.build({
entryPoints: [paths.src.ts + '/adminlte.ts'],
banner: {
js: banner
},
bundle: true,
format: 'iife',
sourcemap: true,
target: ['chrome60'],
outfile: paths.dist.js + '/adminlte.js'
}).catch(
error => console.error(error)
)
})
// Copy Html
gulp.task('copy:dist:html', () => {
return gulp.src([paths.src.html])
@@ -226,7 +296,7 @@ gulp.task('copy:dist:vendor', () => {
.pipe(gulp.dest(paths.dist.vendor))
})
gulp.task('build', gulp.series('clean:dist', 'copy:dist:css', 'copy:dist:html', 'copy:dist:html:index', 'copy:dist:assets', 'copy:dist:vendor'))
gulp.task('build', gulp.series('clean:dist', 'copy:dist:css', 'copy:dist:css:dark', 'copy:dist:css:rtl', 'minify:dist:css', 'copy:dist:js', 'minify:dist:js', 'copy:dist:html', 'copy:dist:html:index', 'copy:dist:assets', 'copy:dist:vendor'))
// Default
gulp.task('default', gulp.series('serve'))