UNPKG

weapp-tailwindcss

Version:

把 tailwindcss 原子化样式思想,带给小程序开发者们! bring tailwindcss to miniprogram developers!

69 lines (68 loc) 3.16 kB
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const require_rolldown_runtime = require("./rolldown-runtime-CVvi-lCc.cjs"); const require_webpack = require("./webpack-B2ojv_HI.cjs"); let node_path = require("node:path"); node_path = require_rolldown_runtime.__toESM(node_path, 1); //#region src/bundlers/rspack/index.ts const CSS_IMPORT_REWRITE_LOADER_NAME = "weapp-tw-css-import-rewrite-loader"; const LIGHTNING_CSS_LOADER_NAME = "builtin:lightningcss-loader"; const CSS_LOADER_NAME = "css-loader"; const POSTCSS_LOADER_NAME = "postcss-loader"; function isRuleLike(value) { return typeof value === "object" && value !== null; } function normalizeUse(use) { if (Array.isArray(use)) return use; if (use === void 0) return; return [use]; } function getLoaderName(item) { if (typeof item === "string") return item; return item?.loader; } function includesLoaderName(item, name) { return getLoaderName(item)?.includes(name) === true; } function createCssImportRewriteLoaderEntry(options) { return { loader: options.loader ?? node_path.default.resolve(__dirname, `./${CSS_IMPORT_REWRITE_LOADER_NAME}.cjs`), ...options.options === void 0 ? {} : { options: options.options } }; } function resolveCssImportRewriteOptions(options) { const cssImportRewriteLoader = options.cssImportRewriteLoader ?? true; if (cssImportRewriteLoader === false) return; return cssImportRewriteLoader === true ? {} : cssImportRewriteLoader; } function patchRuleUse(rule, options) { let use = normalizeUse(rule.use); if (!use) return; if (options.removeLightningCssLoader) use = use.filter((item) => !includesLoaderName(item, LIGHTNING_CSS_LOADER_NAME)); const cssImportRewriteOptions = resolveCssImportRewriteOptions(options); if (cssImportRewriteOptions) { const existingIndex = use.findIndex((item) => includesLoaderName(item, CSS_IMPORT_REWRITE_LOADER_NAME)); const existing = existingIndex === -1 ? void 0 : use.splice(existingIndex, 1)[0]; const anchorIndex = use.findIndex((item) => includesLoaderName(item, LIGHTNING_CSS_LOADER_NAME)); const fallbackAnchorIndex = anchorIndex === -1 ? use.findIndex((item) => includesLoaderName(item, CSS_LOADER_NAME) || includesLoaderName(item, POSTCSS_LOADER_NAME)) : anchorIndex; if (fallbackAnchorIndex !== -1) { const loaderEntry = existing ?? createCssImportRewriteLoaderEntry(cssImportRewriteOptions); use.splice(fallbackAnchorIndex + 1, 0, loaderEntry); } } rule.use = use; } function walkRspackRule(rule, options) { if (!isRuleLike(rule)) return; patchRuleUse(rule, options); if (Array.isArray(rule.oneOf)) rule.oneOf.forEach((item) => walkRspackRule(item, options)); if (Array.isArray(rule.rules)) rule.rules.forEach((item) => walkRspackRule(item, options)); } function patchRspackConfig(config, options = {}) { for (const rule of config.module?.rules ?? []) walkRspackRule(rule, options); return config; } //#endregion exports.WeappTailwindcss = require_webpack.WeappTailwindcss; exports.patchRspackConfig = patchRspackConfig; exports.weappTailwindcss = require_webpack.WeappTailwindcss; exports.weappTailwindcssPackageDir = require_webpack.weappTailwindcssPackageDir;