UNPKG

@winner-fed/plugin-unocss

Version:

适配 WinJS 的 UnoCSS 插件,提供原子化 CSS 的即时按需生成能力。

51 lines (50 loc) 1.98 kB
import { existsSync } from "node:fs"; import { join } from "node:path"; import postcss from "@unocss/postcss"; import webpack from "@unocss/webpack"; const src = (api)=>{ api.describe({ key: 'unocss', config: { schema ({ zod }) { return zod.object({ watch: zod.optional(zod.array(zod.any())) }); } }, enableBy: api.EnableBy.config }); api.onBeforeCompiler(async ()=>{ var _api_userConfig_unocss, _api_userConfig; if (process.env.IS_WIN_BUILD_WORKER) return; if (null == (_api_userConfig = api.userConfig) ? void 0 : null == (_api_userConfig_unocss = _api_userConfig.unocss) ? void 0 : _api_userConfig_unocss.watch) api.logger.warn("unocss?.watch \u914D\u7F6E\u4E0D\u518D\u9700\u8981\u3002"); if (existsSync(join(api.paths.cwd, 'unocss.config.ts'))) api.logger.warn("\u8BF7\u4FEE\u6539 unocss \u7684\u63A5\u5165\u65B9\u5F0F\uFF0C\u4E3B\u8981\u662F\u5C06 unocss.config.ts \u4FEE\u6539\u4E3A uno.config.ts\uFF01\u79FB\u9664 @unocss/cli\u3002"); }); if (api.userConfig.rsbuild || api.userConfig.vite) api.modifyConfig((memo)=>{ memo.extraPostCSSPlugins ??= []; memo.extraPostCSSPlugins.push(postcss()); return memo; }); else { api.modifyConfig((memo)=>{ memo.alias['uno.css'] = '/__uno.css'; return memo; }); api.chainWebpack(async (memo)=>{ memo.plugin('uno-css').use(webpack); memo.optimization.realContentHash(true); memo.module.rule('vue').uses.delete('cache-loader'); memo.module.rule('tsx').uses.delete('cache-loader'); memo.merge({ cache: false }); return memo; }); api.addEntryImports(()=>[ { source: 'uno.css' } ]); } }; export { src as default };