cn-font-split
Version:
划时代的字体切割工具,CJK与任何字符!支持 otf、ttf、woff2 字体多线程切割,完美地细颗粒度地进行包大小控制。A revolutionary font subetter that supports CJK and any characters! It enables multi-threaded subset of otf, ttf, and woff2 fonts, allowing for precise control over package size.
66 lines (63 loc) • 2.03 kB
text/typescript
import { defineConfig } from 'vite';
import nodeExternals from 'rollup-plugin-node-externals';
import dts from 'vite-plugin-dts';
import fs from 'fs-extra';
import { viteStaticCopy } from 'vite-plugin-static-copy';
try {
fs.unlinkSync('./src/version');
} catch (e) {}
export default defineConfig(({ mode }) => {
return {
base: '',
plugins: [
nodeExternals({
builtinsPrefix: 'ignore',
include: ['bun:ffi'],
exclude: [
'memfs-browser',
'@xan105/ffi/koffi',
'@tybys/wasm-util',
],
}),
{
name: 'add deps',
transform(code, id) {
if (mode === 'production' && id.includes('memfs')) {
return 'import { Buffer } from "buffer";\n' + code;
}
if (id.includes('createAPI')) {
console.log(id);
return code
.replace(/.*fs-extra.*/g, '')
.replace(/fs\./g, 'globalThis.fs.');
}
if (id.includes('wasm-util.esm')) {
return code.replaceAll(
'process.env',
'import.meta.env',
);
}
},
},
],
build: {
emptyOutDir: false,
target: 'esnext',
outDir: 'dist/wasm',
lib: {
entry: ['./src/wasm/index.ts'],
formats: ['es'],
},
minify: true,
sourcemap: true,
assetsDir: '',
assetsInlineLimit: 0,
rollupOptions: {
output: {
assetFileNames: `[name]-[hash].[ext]`,
exports: 'named',
},
},
},
};
});