UNPKG

@refly/arco-vite-plugin-react

Version:

For Vite build, load Arco Design styles on demand

80 lines 2.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const less_1 = require("./less"); const icon_1 = require("./icon"); const transform_1 = require("./transform"); const pkg = require('../../package.json'); function vitePluginArcoImport(options = {}) { const { theme = '', iconBox = '', modifyVars = {}, style = true, varsInjectScope = [] } = options; let iconBoxLib; let resolvedConfig; let isDevelopment = false; if (iconBox) { try { iconBoxLib = require(iconBox); // eslint-disable-line } catch (e) { throw new Error(`IconBox ${iconBox} not existed`); } } return { name: pkg.name, config(config, { command }) { // dev mode isDevelopment = command === 'serve'; // css preprocessorOptions (0, less_1.modifyCssConfig)(pkg.name, config, theme, modifyVars, varsInjectScope); // iconbox (0, icon_1.modifyIconConfig)(config, iconBox, iconBoxLib); }, async load(id) { const res = (0, icon_1.loadIcon)(id, iconBox, iconBoxLib); if (res !== undefined) { return res; } // other ids should be handled as usually return null; }, configResolved(config) { resolvedConfig = config; // console.log('viteConfig', resolvedConfig) }, transform(code, id) { let shouldTransform = false; for (const pattern of options.filePatterns) { if (id.match(pattern)) { shouldTransform = true; } } // Do not transform packages in this monorepo! if (!shouldTransform) { return (0, transform_1.emptyTransformJsFiles)({ id, code, isDevelopment, sourceMaps: options.sourceMaps || isDevelopment || Boolean(resolvedConfig?.build?.sourcemap), }); } // transform css files const res = (0, transform_1.transformCssFile)({ code, id, theme, }); if (res !== undefined) { return res; } // css lazy load return (0, transform_1.transformJsFiles)({ code, id, theme, style, isDevelopment, sourceMaps: options.sourceMaps || isDevelopment || Boolean(resolvedConfig?.build?.sourcemap), }); }, }; } exports.default = vitePluginArcoImport; //# sourceMappingURL=index.js.map