@mypaas/hcm-cli
Version:
Vant Cli 是一个 Vue 组件库构建工具,通过 Vant Cli 可以快速搭建一套功能完备的 Vue 组件库。
55 lines (54 loc) • 1.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.genPackageStyle = void 0;
const path_1 = require("path");
const fs_extra_1 = require("fs-extra");
const common_1 = require("../common");
const css_1 = require("../common/css");
const constant_1 = require("../common/constant");
function genPackageStyle(options) {
const styleDepsJson = require(constant_1.STYPE_DEPS_JSON_FILE);
const ext = '.' + css_1.CSS_LANG;
let content = '';
let baseFile = css_1.getCssBaseFile();
if (baseFile) {
if (options.pathResolver) {
baseFile = options.pathResolver(baseFile);
}
content += `@import "${common_1.normalizePath(baseFile)}";\n`;
}
content += styleDepsJson.sequence
.map((name) => {
let path = path_1.join(constant_1.SRC_DIR, `${name}/index${ext}`);
if (!fs_extra_1.existsSync(path)) {
return '';
}
if (options.pathResolver) {
path = options.pathResolver(path);
}
return `@import "${common_1.normalizePath(path)}";`;
})
.filter((item) => !!item)
.join('\n');
// 自定义样式
content += '\n';
content += styleDepsJson.sequence
.map((name) => {
if (options.pathResolver)
return '';
const path = path_1.join(constant_1.SRC_DIR, `${name}/honeycomb${ext}`);
if (!fs_extra_1.existsSync(path)) {
return '';
}
return `@import "${common_1.normalizePath(path)}";`;
})
.filter((item) => !!item)
.join('\n');
// 全局变量
const customVar = path_1.join(constant_1.STYLE_DIR, `honeycomb-var.${css_1.CSS_LANG}`);
if (customVar && !options.pathResolver && fs_extra_1.existsSync(customVar)) {
content += `\n@import "${common_1.normalizePath(customVar)}";\n`;
}
common_1.smartOutputFile(options.outputPath, content);
}
exports.genPackageStyle = genPackageStyle;