UNPKG

@mypaas/hcm-cli

Version:

Vant Cli 是一个 Vue 组件库构建工具,通过 Vant Cli 可以快速搭建一套功能完备的 Vue 组件库。

46 lines (45 loc) 1.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.combineStyle = void 0; const fs_extra_1 = require("fs-extra"); const path_1 = require("path"); const common_1 = require("../common"); const convert_css_var_1 = require("./convert-css-var"); const convert_to_js_1 = require("./convert-to-js"); async function combine(dir, files) { const customStyle = files.find(file => /honeycomb.*\.less$/.test(file)); if (!customStyle) return files; let target = customStyle.includes('var') ? 'var.less' : 'index.less'; if (!files.includes(target)) return files; target = path_1.join(dir, target); const source = path_1.join(dir, customStyle); fs_extra_1.appendFileSync(target, fs_extra_1.readFileSync(source)); // 转换为 css 变量 if (target.includes('var.less')) { // 复制一份没有使用全局变量的样式 await fs_extra_1.copyFile(target, target.replace('var.less', 'var-pure.less')); await convert_css_var_1.convertCssVar(target); } fs_extra_1.removeSync(source); return files.filter(file => file !== customStyle); } async function combineStyle(dir) { let files = fs_extra_1.readdirSync(dir); files = await combine(dir, files); await Promise.all(files.map(filename => { const filePath = path_1.join(dir, filename); if (common_1.isDemoDir(filePath) || common_1.isTestDir(filePath)) { return fs_extra_1.remove(filePath); } if (common_1.isDir(filePath)) { return combineStyle(filePath); } if (filePath.lastIndexOf('.share.less') >= 0) { return convert_to_js_1.convertToJs(filePath); } return Promise.resolve(); })); } exports.combineStyle = combineStyle;