import path from 'path' import chalk from 'chalk' import { dest, parallel, series, src } from 'gulp' import gulpSass from 'gulp-sass' import dartSass from 'sass' import autoprefixer from 'gulp-autoprefixer' import cleanCSS from 'gulp-clean-css' import rename from 'gulp-rename' import consola from 'consola' import { epOutput } from '@kankan-components/build-utils' const distFolder = path.resolve(__dirname, 'dist') const distBundle = path.resolve(epOutput, 'theme-chalk') /** * compile theme-chalk scss & minify * not use sass.sync().on('error', sass.logError) to throw exception * @returns */ function buildThemeChalk() { const sass = gulpSass(dartSass) const noElPrefixFile = /(index|base|display)/ return src(path.resolve(__dirname, 'src/*.scss')) .pipe(sass.sync()) .pipe(autoprefixer({ cascade: false })) .pipe( cleanCSS({}, (details) => { consola.success( `${chalk.cyan(details.name)}: ${chalk.yellow( details.stats.originalSize / 1000 )} KB -> ${chalk.green(details.stats.minifiedSize / 1000)} KB` ) }) ) .pipe( rename((path) => { if (!noElPrefixFile.test(path.basename)) { path.basename = `kk-${path.basename}` } }) ) .pipe(dest(distFolder)) } // /** // * Build dark Css Vars // * @returns // */ // function buildDarkCssVars() { // const sass = gulpSass(dartSass) // return src(path.resolve(__dirname, 'src/dark/css-vars.scss')) // .pipe(sass.sync()) // .pipe(autoprefixer({ cascade: false })) // .pipe( // cleanCSS({}, details => { // consola.success(`${chalk.cyan(details.name)}: ${chalk.yellow(details.stats.originalSize / 1000)} KB -> ${chalk.green(details.stats.minifiedSize / 1000)} KB`) // }) // ) // .pipe(dest(`${distFolder}/dark`)) // } /** * copy from packages/theme-chalk/dist to dist/element-plus/theme-chalk */ export function copyThemeChalkBundle() { return src(`${distFolder}/**`).pipe(dest(distBundle)) } /** * copy source file to packages */ export function copyThemeChalkSource() { return src(path.resolve(__dirname, 'src/**')).pipe( dest(path.resolve(distBundle, 'src')) ) } // buildDarkCssVars export const build = parallel( copyThemeChalkSource, series(buildThemeChalk, copyThemeChalkBundle) ) export default build