/** * webpack-theme-color-replacer 插件的 resolve 配置 * 为特定的 css 选择器(selector)配置 resolve 规则。 * * key 为 css selector 值或合法的正则表达式字符串 * 当 key 设置 css selector 值时,会匹配对应的 css * 当 key 设置为正则表达式时,会匹配所有满足此正则表达式的的 css * * value 可以设置为 boolean 值 false 或 一个对象 * 当 value 为 false 时,则会忽略此 css,即此 css 不纳入 webpack-theme-color-replacer 管理 * 当 value 为 对象时,会调用该对象的 resolve 函数,并传入 cssText(原始的 css文本) 和 cssObj(css对象)参数; resolve函数应该返 * 回一个处理后的、合法的 css字符串(包含 selector) * 注意: value 不能设置为 true */ const cssResolve = { '.ant-checkbox-checked .ant-checkbox-inner::after': { resolve(cssText, cssObj) { cssObj.rules.push('border-top:0', 'border-left:0') return cssObj.toText() } }, '.ant-checkbox-checked .ant-checkbox-inner:after': { resolve(cssText, cssObj) { cssObj.rules.push('border-top:0', 'border-left:0') return cssObj.toText() } }, '.ant-menu-dark .ant-menu-inline.ant-menu-sub': { resolve(cssText, cssObj) { cssObj.rules = cssObj.rules.filter(rule => rule.indexOf('box-shadow') == -1) return cssObj.toText() } }, '.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu:hover,.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-submenu-active,.ant-menu-horizontal>.ant-menu-item-open,.ant-menu-horizontal>.ant-menu-submenu-open,.ant-menu-horizontal>.ant-menu-item-selected,.ant-menu-horizontal>.ant-menu-submenu-selected': { resolve(cssText, cssObj) { cssObj.selector = cssObj.selector.replace(/.ant-menu-horizontal/g, '.ant-menu-horizontal:not(.ant-menu-dark)') return cssObj.toText() } }, '.ant-layout-sider': { resolve(cssText, cssObj) { cssObj.selector = '.ant-layout-sider-dark' return cssObj.toText() } }, '/keyframes/': false } module.exports = cssResolve