@elora-cloud/elora-cli
Version:
elora build cli 前端打包脚手架
69 lines (62 loc) • 3.04 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var path = require('node:path');
var chalk = require('chalk');
var consola = require('consola');
var gulp = require('gulp');
var autoprefixer = require('gulp-autoprefixer');
var cleanCSS = require('gulp-clean-css');
var replace = require('gulp-replace');
var gulpSass = require('gulp-sass');
var dartSass = require('sass');
var gulp$1 = require('../utils/gulp.cjs');
require('../utils/paths.cjs');
require('../utils/pkg.cjs');
require('../utils/process.cjs');
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
var path__default = /*#__PURE__*/_interopDefaultCompat(path);
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
var consola__default = /*#__PURE__*/_interopDefaultCompat(consola);
var autoprefixer__default = /*#__PURE__*/_interopDefaultCompat(autoprefixer);
var cleanCSS__default = /*#__PURE__*/_interopDefaultCompat(cleanCSS);
var replace__default = /*#__PURE__*/_interopDefaultCompat(replace);
var gulpSass__default = /*#__PURE__*/_interopDefaultCompat(gulpSass);
var dartSass__default = /*#__PURE__*/_interopDefaultCompat(dartSass);
/**
* compile theme-chalk scss & minify
* not use sass.sync().on('error', sass.logError) to throw exception
* @return
*/
function buildThemeChalk(srcDir, themeFileDir, distDir) {
const sass = gulpSass__default.default(dartSass__default.default);
return (gulp.src(path__default.default.resolve(srcDir, themeFileDir))
.pipe(sass.sync({
loadPaths: ['node_modules', 'node_modules/animate.css/animate.min.css'],
}))
.pipe(autoprefixer__default.default({ cascade: false }))
.pipe(cleanCSS__default.default({}, (details) => {
consola__default.default.success(`${chalk__default.default.cyan(details.name)}: ${chalk__default.default.yellow(details.stats.originalSize / 1000)} KB -> ${chalk__default.default.green(details.stats.minifiedSize / 1000)} KB`);
}))
// .pipe(
// rename((path) => {
// if (!noElPrefixFile.test(path.basename)) {
// path.basename = `elora-${path.basename}`;
// }
// })
// )
.pipe(gulp.dest(distDir)));
}
/**
* copy source file to packages
*/
function copyThemeChalkSource(srcDir, themeSourceDir, distDir) {
return gulp.src(path__default.default.resolve(srcDir, themeSourceDir))
.pipe(replace__default.default('assets/images', '../assets/images'))
.pipe(gulp.dest(path__default.default.resolve(distDir, 'src')));
}
function EloraBuildTheme(options) {
return gulp.parallel(gulp$1.withTaskName('copyThemeChalkSource', () => copyThemeChalkSource(options.srcDir, options.themeSourceDir, options.distDir)), gulp$1.withTaskName('buildThemeChalk', () => buildThemeChalk(options.srcDir, options.themeFileDir, options.distDir)));
}
exports.EloraBuildTheme = EloraBuildTheme;
exports.copyThemeChalkSource = copyThemeChalkSource;
exports.default = EloraBuildTheme;