mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
46 lines
1.1 KiB
TypeScript
46 lines
1.1 KiB
TypeScript
import { join } from 'path';
|
|
import { existsSync } from 'fs-extra';
|
|
import { smartOutputFile, normalizePath } from '../common';
|
|
import { CSS_LANG, getCssBaseFile } from '../common/css';
|
|
import { SRC_DIR, STYPE_DEPS_JSON_FILE } from '../common/constant';
|
|
|
|
type Options = {
|
|
outputPath: string;
|
|
pathResolver?: (path: string) => string;
|
|
};
|
|
|
|
export function genPacakgeStyle(options: Options) {
|
|
const styleDepsJson = require(STYPE_DEPS_JSON_FILE);
|
|
const ext = '.' + CSS_LANG;
|
|
|
|
let content = '';
|
|
|
|
let baseFile = getCssBaseFile();
|
|
if (baseFile) {
|
|
if (options.pathResolver) {
|
|
baseFile = options.pathResolver(baseFile);
|
|
}
|
|
|
|
content += `@import "${normalizePath(baseFile)}";\n`;
|
|
}
|
|
|
|
content += styleDepsJson.sequence
|
|
.map((name: string) => {
|
|
let path = join(SRC_DIR, `${name}/index${ext}`);
|
|
|
|
if (!existsSync(path)) {
|
|
return '';
|
|
}
|
|
|
|
if (options.pathResolver) {
|
|
path = options.pathResolver(path);
|
|
}
|
|
|
|
return `@import "${normalizePath(path)}";`;
|
|
})
|
|
.filter((item: string) => !!item)
|
|
.join('\n');
|
|
|
|
smartOutputFile(options.outputPath, content);
|
|
}
|