UNPKG

omii-ui

Version:

使用OMII开发的WebComponents库,样式采用bootstrap。可以作为标准的esmodule使用

50 lines (40 loc) 1.3 kB
import fs from "fs" import path from "path" import esbuild from 'esbuild' import { outputRoot } from '../../../esbuild.js' const svgRoot = './node_modules/bootstrap-icons/icons' const entryPoints = [] fs.readdirSync(svgRoot).forEach(file => { if (path.extname(file) == ".svg") { entryPoints.push(path.join(svgRoot, file)) } }) let svgOnLoadPlugin = { name: 'svgPlugin', setup(build) { // Load ".txt" files and return an array of words build.onLoad({ filter: /\.svg$/ }, async (args) => { let text = await fs.promises.readFile(args.path, 'utf8') const pathes = text.match(/</g) return { contents: ` const {h} = omii; export default ${text.replace(/<svg[^>]*>/, pathes.length == 3 ? "" : "<>").replace(/<\/svg>/, pathes.length == 3 ? "" : "</>")}`, loader: 'jsx', } }) }, } let defaultOptions = { jsxFactory: 'h', jsxFragment: 'h.f', entryPoints, format: "esm", bundle: false, sourcemap: false, minify: true, plugins: [svgOnLoadPlugin], loader: { '.svg': 'jsx' }, outdir: `${outputRoot}/bootstrap/icons` } esbuild.build(defaultOptions)