weapp-tailwindcss
Version:
把 tailwindcss 原子化样式思想,带给小程序开发者们! bring tailwindcss to miniprogram developers!
161 lines (160 loc) • 6.12 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const require_rolldown_runtime = require("./rolldown-runtime-CVvi-lCc.cjs");
const require_framework = require("./framework.cjs");
const require_object = require("./object-C_Vr6_S5.cjs");
const require_options = require("./options-hVsoTfwL.cjs");
require("./utils-CuKLf1Zv.cjs");
const require_tailwindcss = require("./tailwindcss-DcpiKvmJ.cjs");
require("./logger-TlKT3xmR.cjs");
let node_path = require("node:path");
node_path = require_rolldown_runtime.__toESM(node_path, 1);
let node_process = require("node:process");
node_process = require_rolldown_runtime.__toESM(node_process, 1);
let local_pkg = require("local-pkg");
let _weapp_tailwindcss_shared = require("@weapp-tailwindcss/shared");
let _weapp_tailwindcss_logger = require("@weapp-tailwindcss/logger");
//#region src/presets/shared.ts
function normalizeCssEntries(entries) {
if (!entries) return;
const normalized = Array.isArray(entries) ? entries : [entries];
return normalized.length > 0 ? normalized : void 0;
}
function shouldEnableWebCompatFromEnv() {
const { uniPlatform, uniUtsPlatform } = require_framework.resolveUniPlatformsFromEnv();
return uniPlatform.isWeb || uniUtsPlatform.isWeb || require_framework.resolveTaroPlatform().isWeb;
}
function withWebCompatGeneratorDefaults(options, enabled = shouldEnableWebCompatFromEnv()) {
if (!enabled || options.generator === false) return options;
const generatorOptions = options.generator ?? {};
return {
...options,
generator: (0, _weapp_tailwindcss_shared.defuOverrideArray)(generatorOptions, {
target: "web",
webCompat: true
})
};
}
function createBasePreset(options = {}) {
const { base, cssEntries, resolve, rawOptions, ...userOptions } = options;
const baseDir = require_tailwindcss.resolveTailwindcssBasedir(base);
const normalizedCssEntries = normalizeCssEntries(cssEntries);
const tailwindConfig = { v4: require_object.omitUndefined({
base: baseDir,
cssEntries: normalizedCssEntries
}) };
if (normalizedCssEntries && normalizedCssEntries.length > 0) tailwindConfig.version = 4;
const preset = {
tailwindcssBasedir: baseDir,
tailwindcss: tailwindConfig,
tailwindcssRuntimeOptions: {
projectRoot: baseDir,
tailwindcss: resolve ? {
...tailwindConfig,
resolve
} : tailwindConfig
}
};
return (0, _weapp_tailwindcss_shared.defuOverrideArray)((0, _weapp_tailwindcss_shared.defuOverrideArray)(userOptions, rawOptions ?? {}), preset);
}
//#endregion
//#region src/presets/hbuilderx.ts
function hbuilderx(options = {}) {
return createBasePreset(withWebCompatGeneratorDefaults({
appType: "uni-app-vite",
...options
}));
}
//#endregion
//#region src/presets/uni-app.ts
function uniApp(options = {}) {
const uniPlatform = node_process.default.env["UNI_PLATFORM"];
return createBasePreset(withWebCompatGeneratorDefaults({
disabled: uniPlatform === "app" || uniPlatform === "app-plus" ? true : void 0,
...options
}));
}
//#endregion
//#region src/tailwindcss/index.ts
function getTailwindcssPackageInfo(options) {
return (0, local_pkg.getPackageInfoSync)("tailwindcss", options);
}
//#endregion
//#region src/presets/uni-app-x.ts
function resolveTailwindResolveOptions(base, resolve) {
const currentPaths = Array.isArray(resolve?.paths) ? resolve.paths : [];
return {
...resolve ?? {},
paths: [.../* @__PURE__ */ new Set([
node_path.default.join(base, "node_modules"),
base,
...currentPaths
])]
};
}
function resolveInstalledTailwindDefaults(resolve) {
const version = getTailwindcssPackageInfo(resolve)?.version;
if (!version) return;
const major = Number.parseInt(version.split(".")[0] ?? "", 10);
if (!Number.isFinite(major)) return;
if (major === 4) return {
version: 4,
packageName: "tailwindcss",
postcssPlugin: "@tailwindcss/postcss"
};
}
function uniAppX(options) {
_weapp_tailwindcss_logger.logger.info(`UNI_PLATFORM: ${node_process.default.env["UNI_PLATFORM"]}`);
const { uniPlatform, uniUtsPlatform } = require_framework.resolveUniPlatformsFromEnv();
_weapp_tailwindcss_logger.logger.info(`UNI_UTS_PLATFORM: ${uniUtsPlatform.raw ?? "undefined"}`);
const isApp = uniUtsPlatform.isApp || uniPlatform.isApp;
const cssEntries = normalizeCssEntries(options.cssEntries);
const resolvedResolve = resolveTailwindResolveOptions(options.base, options.resolve);
const installedTailwindDefaults = resolveInstalledTailwindDefaults(resolvedResolve);
const resolvedUniAppX = require_options.resolveUniAppXOptions({
enabled: isApp,
componentLocalStyles: options.componentLocalStyles ?? true,
uvueUnsupported: options.uvueUnsupported,
...typeof options.uniAppX === "object" ? options.uniAppX : {}
});
if (typeof options.uniAppX === "boolean") resolvedUniAppX.enabled = options.uniAppX;
return (0, _weapp_tailwindcss_shared.defuOverrideArray)(options.rawOptions ?? {}, {
uniAppX: resolvedUniAppX,
...withWebCompatGeneratorDefaults(options.generator !== void 0 ? { generator: options.generator } : {}),
rem2rpx: options.rem2rpx,
unitsToPx: options.unitsToPx,
unitConversion: options.unitConversion,
appType: "uni-app-x",
tailwindcssBasedir: options.base,
tailwindcssRuntimeOptions: {
projectRoot: options.base,
tailwindcss: {
...installedTailwindDefaults ?? {},
cwd: options.base,
resolve: resolvedResolve,
v4: require_object.omitUndefined({
base: options.base,
cssEntries
})
}
},
tailwindcss: {
...installedTailwindDefaults ?? {},
resolve: resolvedResolve
},
cssPreflight: {
"border-width": "0",
"border-style": false,
"border": false
},
cssPresetEnv: { features: { "custom-properties": { preserve: false } } },
...options.customAttributes ? { customAttributes: options.customAttributes } : {}
});
}
//#endregion
exports.createBasePreset = createBasePreset;
exports.hbuilderx = hbuilderx;
exports.normalizeCssEntries = normalizeCssEntries;
exports.shouldEnableWebCompatFromEnv = shouldEnableWebCompatFromEnv;
exports.uniApp = uniApp;
exports.uniAppX = uniAppX;
exports.withWebCompatGeneratorDefaults = withWebCompatGeneratorDefaults;