d13100ebf3
Build and push docs image / build-image (push) Waiting to run
Update draft releases / main (push) Waiting to run
Test Python / test-python (macos-latest, 3.10) (push) Waiting to run
Test Python / test-python (macos-latest, 3.11) (push) Waiting to run
Test Python / test-python (ubuntu-latest, 3.10) (push) Waiting to run
Test Python / test-python (ubuntu-latest, 3.11) (push) Waiting to run
Build Web Application / build-web (macos-latest) (push) Waiting to run
Build Web Application / build-web (ubuntu-latest) (push) Waiting to run
Python Code Quality Checks / build (push) Waiting to run
37 lines
1.0 KiB
TypeScript
37 lines
1.0 KiB
TypeScript
import { extractStyle } from '@ant-design/cssinjs';
|
|
import type Entity from '@ant-design/cssinjs/lib/Cache';
|
|
import { createHash } from 'crypto';
|
|
import fs from 'fs';
|
|
import path from 'path';
|
|
|
|
export type DoExtraStyleOptions = {
|
|
cache: Entity;
|
|
dir?: string;
|
|
baseFileName?: string;
|
|
};
|
|
export function doExtraStyle({ cache, dir = 'antd-output', baseFileName = 'antd.min' }: DoExtraStyleOptions) {
|
|
const baseDir = path.resolve(__dirname, '../../static/css');
|
|
|
|
const outputCssPath = path.join(baseDir, dir);
|
|
|
|
if (!fs.existsSync(outputCssPath)) {
|
|
fs.mkdirSync(outputCssPath, { recursive: true });
|
|
}
|
|
|
|
const css = extractStyle(cache, true);
|
|
if (!css) return '';
|
|
|
|
const md5 = createHash('md5');
|
|
const hash = md5.update(css).digest('hex');
|
|
const fileName = `${baseFileName}.${hash.substring(0, 8)}.css`;
|
|
const fullpath = path.join(outputCssPath, fileName);
|
|
|
|
const res = `_next/static/css/${dir}/${fileName}`;
|
|
|
|
if (fs.existsSync(fullpath)) return res;
|
|
|
|
fs.writeFileSync(fullpath, css);
|
|
|
|
return res;
|
|
}
|