12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- 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 '@element-plus/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 = `el-${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'))
- )
- }
- export const build = parallel(
- copyThemeChalkSource,
- series(buildThemeChalk, buildDarkCssVars, copyThemeChalkBundle)
- )
- export default build
|