weapp-tailwindcss
Version:
把 tailwindcss 原子化样式思想,带给小程序开发者们! bring tailwindcss to miniprogram developers!
115 lines (111 loc) • 2.88 kB
JavaScript
import {
logger,
resolveTailwindcssBasedir
} from "./chunk-SZOXLSNK.mjs";
import {
defuOverrideArray
} from "./chunk-RR5HCKVQ.mjs";
import "./chunk-SM5V25IN.mjs";
// src/presets/shared.ts
function normalizeCssEntries(entries) {
if (!entries) {
return void 0;
}
const normalized = Array.isArray(entries) ? entries : [entries];
return normalized.length > 0 ? normalized : void 0;
}
function createBasePreset(options = {}) {
const {
base,
cssEntries,
resolve,
rawOptions,
...userOptions
} = options;
const baseDir = resolveTailwindcssBasedir(base);
const normalizedCssEntries = normalizeCssEntries(cssEntries);
const tailwindConfig = {
v2: { cwd: baseDir },
v3: { cwd: baseDir },
v4: {
base: baseDir,
cssEntries: normalizedCssEntries
}
};
if (normalizedCssEntries && normalizedCssEntries.length > 0) {
tailwindConfig.version = 4;
}
const patchTailwindConfig = resolve ? {
...tailwindConfig,
resolve
} : tailwindConfig;
const preset = {
tailwindcssBasedir: baseDir,
tailwindcss: tailwindConfig,
tailwindcssPatcherOptions: {
cwd: baseDir,
tailwind: patchTailwindConfig
}
};
const mergedUserOptions = defuOverrideArray(userOptions, rawOptions ?? {});
return defuOverrideArray(
mergedUserOptions,
preset
);
}
// src/presets/uni-app.ts
import process from "process";
function uniApp(options = {}) {
const uniPlatform = process.env.UNI_PLATFORM;
const disableInH5OrApp = uniPlatform === "h5" || uniPlatform === "app" || uniPlatform === "app-plus";
return createBasePreset({
disabled: disableInH5OrApp ? true : void 0,
...options
});
}
// src/presets/uni-app-x.ts
import process2 from "process";
function uniAppX(options) {
logger.info(`UNI_PLATFORM: ${process2.env.UNI_PLATFORM}`);
const isApp = process2.env.UNI_PLATFORM === "app" || process2.env.UNI_PLATFORM === "app-plus" || process2.env.UNI_PLATFORM === "app-harmony";
const cssEntries = normalizeCssEntries(options.cssEntries);
return defuOverrideArray(
options.rawOptions ?? {},
{
uniAppX: isApp,
rem2rpx: options.rem2rpx,
tailwindcssBasedir: options.base,
tailwindcssPatcherOptions: {
cwd: options.base,
tailwind: {
cwd: options.base,
resolve: options.resolve,
v3: {
cwd: options.base
},
v4: {
base: options.base,
cssEntries
}
}
},
cssPreflight: {
"border-style": false
},
cssPresetEnv: {
features: {
"custom-properties": {
preserve: false
}
}
},
...options.customAttributes ? { customAttributes: options.customAttributes } : {}
}
);
}
export {
createBasePreset,
normalizeCssEntries,
uniApp,
uniAppX
};