@easybill-ui/theme-chalk
Version:
easybill component chalk theme.
61 lines (53 loc) • 1.76 kB
text/typescript
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"
const distFolder = path.resolve(__dirname, "dist")
const distBundle = path.resolve(__dirname, "..", "easybill-ui", "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 = `${path.basename}`
}
}),
)
.pipe(dest(distFolder))
}
/**
* 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")))
}
export const build = parallel(
// copyThemeChalkSource,
series(buildThemeChalk, copyThemeChalkBundle),
)
export default build