saven
Version:
49 lines (48 loc) • 1.81 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const autoprefixer = require("autoprefixer");
const constparse = require("postcss-plugin-constparse");
const pxtransform = require("postcss-pxtransform");
const defaultAutoprefixerOption = {
browsers: [
'Android >= 4',
'iOS >= 6'
],
flexbox: 'no-2009'
};
const defaultPxtransformOption = {
platform: 'h5'
};
const defaultConstparseOption = {
constants: [{
key: 'taro-tabbar-height',
val: '50PX'
}],
platform: 'h5'
};
const plugins = [];
exports.getPostcssPlugins = function ({ designWidth, deviceRatio, postcssOption = {} }) {
const isAutoprefixerEnabled = (postcssOption.autoprefixer && postcssOption.autoprefixer.enable === false)
? false
: true;
const isPxtransformEnabled = (postcssOption.pxtransform && postcssOption.pxtransform.enable === false)
? false
: true;
const customPlugins = postcssOption.plugins || [];
if (isAutoprefixerEnabled) {
const customAutoprefixerOption = postcssOption.autoprefixer ? postcssOption.autoprefixer.config : {};
plugins.push(autoprefixer(Object.assign(defaultAutoprefixerOption, customAutoprefixerOption)));
}
if (isPxtransformEnabled) {
const customPxtransformOption = postcssOption.pxtransform ? postcssOption.pxtransform.config : {};
if (designWidth) {
defaultPxtransformOption.designWidth = designWidth;
}
if (deviceRatio) {
defaultPxtransformOption.deviceRatio = deviceRatio;
}
plugins.push(pxtransform(Object.assign(defaultPxtransformOption, customPxtransformOption)));
}
plugins.push(constparse(defaultConstparseOption));
return plugins.concat(customPlugins);
};