本文整理汇总了TypeScript中postcss-pxtransform.default方法的典型用法代码示例。如果您正苦于以下问题:TypeScript postcss-pxtransform.default方法的具体用法?TypeScript postcss-pxtransform.default怎么用?TypeScript postcss-pxtransform.default使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类postcss-pxtransform
的用法示例。
在下文中一共展示了postcss-pxtransform.default方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: function
export const getPostcssPlugins = function (config) {
const designWidth = config.designWidth || 750
const useModuleConf = config.module || {}
const customPostcssConf = useModuleConf.postcss || {}
const customAutoprefixerConf = customPostcssConf.autoprefixer || {}
const customPxtransformConf = customPostcssConf.pxtransform || {}
const customPlugins = customPostcssConf.plugins || []
const postcssPxtransformOption = {
designWidth,
platform: 'h5'
}
const DEVICE_RATIO = 'deviceRatio'
if (config.hasOwnProperty(DEVICE_RATIO)) {
postcssPxtransformOption[DEVICE_RATIO] = config.deviceRatio
}
if (isEmptyObject(customAutoprefixerConf) || customAutoprefixerConf.enable) {
plugins.push(autoprefixer(Object.assign({}, defaultAutoprefixerConf, customAutoprefixerConf)))
}
plugins.push(pxtransform(Object.assign({}, postcssPxtransformOption, customPxtransformConf)))
plugins.push(constparse({
constants: [{
key: 'taro-tabbar-height',
val: '50PX'
}],
platform: 'h5'
}))
return plugins.concat(customPlugins)
}
示例2: function
export const getPostcssPlugins = function ({
designWidth,
deviceRatio,
postcssOption = {} as PostcssOption
}) {
if (designWidth) {
defaultPxtransformOption.config.designWidth = designWidth
}
if (deviceRatio) {
defaultPxtransformOption.config.deviceRatio = deviceRatio
}
const autoprefixerOption = recursiveMerge({}, defaultAutoprefixerOption, postcssOption.autoprefixer)
const pxtransformOption = recursiveMerge({}, defaultPxtransformOption, postcssOption.pxtransform)
// const cssModulesOption = recursiveMerge({}, defaultCssModulesOption, postcssOption.cssModules)
if (autoprefixerOption.enable) {
plugins.push(autoprefixer(autoprefixerOption.config))
}
if (pxtransformOption.enable) {
plugins.push(pxtransform(pxtransformOption.config))
}
// if (cssModulesOption.enable) {
// plugins.push(modules(cssModulesOption.config))
// }
plugins.push(constparse(defaultConstparseOption))
Object.entries(postcssOption).forEach(([pluginName, pluginOption]) => {
if (optionsWithDefaults.indexOf(pluginName) > -1) return
if (!pluginOption || !pluginOption.enable) return
if (!isNpmPackage(pluginName)) { // local plugin
pluginName = path.join(appPath, pluginName)
}
try {
const pluginPath = resolveSync(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
}
示例3: processStyleWithPostCSS
async function processStyleWithPostCSS (styleObj: IStyleObj): Promise<string> {
const { appPath, projectConfig, npmConfig, isProduction, buildAdapter } = getBuildData()
const weappConf = Object.assign({}, projectConfig.weapp)
const useModuleConf = weappConf.module || {}
const customPostcssConf = useModuleConf.postcss || {}
const customCssModulesConf = Object.assign({
enable: false,
config: {
generateScopedName: '[name]__[local]___[hash:base64:5]'
}
}, customPostcssConf.cssModules || {})
const customPxtransformConf = Object.assign({
enable: true,
config: {}
}, customPostcssConf.pxtransform || {})
const customUrlConf = Object.assign({
enable: true,
config: {
limit: 10240
}
}, customPostcssConf.url || {})
const customAutoprefixerConf = Object.assign({
enable: true,
config: {
browsers: browserList
}
}, customPostcssConf.autoprefixer || {})
const postcssPxtransformOption = {
designWidth: projectConfig.designWidth || 750,
platform: 'weapp'
}
if (projectConfig.hasOwnProperty(DEVICE_RATIO_NAME)) {
postcssPxtransformOption[DEVICE_RATIO_NAME] = projectConfig.deviceRatio
}
const cssUrlConf = Object.assign({ limit: 10240 }, customUrlConf)
const maxSize = Math.round((customUrlConf.config.limit || cssUrlConf.limit) / 1024)
const postcssPxtransformConf = Object.assign({}, postcssPxtransformOption, customPxtransformConf, customPxtransformConf.config)
const processors: any[] = []
if (customAutoprefixerConf.enable) {
processors.push(autoprefixer(customAutoprefixerConf.config))
}
if (customPxtransformConf.enable && buildAdapter !== BUILD_TYPES.QUICKAPP) {
processors.push(pxtransform(postcssPxtransformConf))
}
if (cssUrlConf.enable) {
const cssUrlParseConf = {
url: 'inline',
maxSize,
encodeType: 'base64'
}
processors.push(cssUrlParse(cssUrlConf.config.basePath ? Object.assign(cssUrlParseConf, {
basePath: cssUrlConf.config.basePath
}) : cssUrlParseConf))
}
const defaultPostCSSPluginNames = ['autoprefixer', 'pxtransform', 'url', 'cssModules']
Object.keys(customPostcssConf).forEach(pluginName => {
if (defaultPostCSSPluginNames.indexOf(pluginName) < 0) {
const pluginConf = customPostcssConf[pluginName]
if (pluginConf && pluginConf.enable) {
if (!isNpmPkg(pluginName)) { // local plugin
pluginName = path.join(appPath, pluginName)
}
processors.push(require(resolveNpmPkgMainPath(pluginName, isProduction, npmConfig, buildAdapter, appPath))(pluginConf.config || {}))
}
}
})
let css = styleObj.css
if (customCssModulesConf.enable) {
css = processStyleUseCssModule(styleObj).css
}
const postcssResult = await postcss(processors).process(css, {
from: styleObj.filePath
})
return postcssResult.css
}
示例4: postCSS
/**
* @description 传入 css string ,返回 postCSS 处理后的 css string
* @param {string} css
* @param {string} filePath
* @param {object} projectConfig
* @returns {Function | any}
*/
function postCSS({css, filePath, projectConfig}) {
const pxTransformConfig = {
designWidth: projectConfig.designWidth || 750
}
if (projectConfig.hasOwnProperty(DEVICE_RATIO)) {
pxTransformConfig[DEVICE_RATIO] = projectConfig.deviceRatio
}
return postcss([
require('stylelint')(stylelintConfig),
require('postcss-reporter')({clearReportedMessages: true}),
pxtransform(
{
platform: 'rn',
...pxTransformConfig
}
)
])
.process(css, {from: filePath})
.then((result) => {
return {
css: result.css,
filePath
}
}).catch((e) => {
Util.printLog(processTypeEnum.ERROR, '样式转换', filePath)
console.log(e.stack)
})
}