UNPKG

@tarojs/mini-runner

Version:

Mini app runner for taro

83 lines 3.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getPostcssPlugins = void 0; const helper_1 = require("@tarojs/helper"); const path = require("path"); const resolve_1 = require("resolve"); const defaultAutoprefixerOption = { enable: true, config: { flexbox: 'no-2009' } }; const defaultPxtransformOption = { enable: true, config: { platform: process.env.TARO_ENV } }; const defaultUrlOption = { enable: true, config: { limit: 1000, url: 'inline' } }; const defaultHtmltransformOption = { enable: false, config: { platform: process.env.TARO_ENV, removeCursorStyle: true } }; const optionsWithDefaults = ['autoprefixer', 'pxtransform', 'cssModules', 'url', 'htmltransform']; const plugins = []; const getPostcssPlugins = function (appPath, { isBuildQuickapp = false, designWidth, deviceRatio, postcssOption = {} }) { if (designWidth) { defaultPxtransformOption.config.designWidth = designWidth; } if (deviceRatio) { defaultPxtransformOption.config.deviceRatio = deviceRatio; } const autoprefixerOption = (0, helper_1.recursiveMerge)({}, defaultAutoprefixerOption, postcssOption.autoprefixer); const pxtransformOption = (0, helper_1.recursiveMerge)({}, defaultPxtransformOption, postcssOption.pxtransform); const urlOption = (0, helper_1.recursiveMerge)({}, defaultUrlOption, postcssOption.url); const htmltransformOption = (0, helper_1.recursiveMerge)({}, defaultHtmltransformOption, postcssOption.htmltransform); if (autoprefixerOption.enable) { const autoprefixer = require('autoprefixer'); plugins.push(autoprefixer(autoprefixerOption.config)); } if (pxtransformOption.enable && !isBuildQuickapp) { const pxtransform = require('postcss-pxtransform'); plugins.push(pxtransform(pxtransformOption.config)); } if (urlOption.enable) { const url = require('postcss-url'); plugins.push(url(urlOption.config)); } if (htmltransformOption === null || htmltransformOption === void 0 ? void 0 : htmltransformOption.enable) { const htmlTransform = require('postcss-html-transform'); plugins.push(htmlTransform(htmltransformOption.config)); } plugins.unshift(require('postcss-import')); Object.entries(postcssOption).forEach(([pluginName, pluginOption]) => { if (optionsWithDefaults.indexOf(pluginName) > -1) return; if (!pluginOption || !pluginOption.enable) return; if (!(0, helper_1.isNpmPkg)(pluginName)) { // local plugin pluginName = path.join(appPath, pluginName); } try { const pluginPath = (0, resolve_1.sync)(pluginName, { basedir: appPath }); plugins.push(require(pluginPath)(pluginOption.config || {})); } catch (e) { const msg = e.code === 'MODULE_NOT_FOUND' ? `缺少postcss插件${pluginName}, 已忽略` : e; console.log(msg); } }); return plugins; }; exports.getPostcssPlugins = getPostcssPlugins; //# sourceMappingURL=postcss.conf.js.map