UNPKG

nimble-ui

Version:
64 lines (59 loc) 2.03 kB
const fs = require('fs'); const path = require('path'); const transform = require('./transform'); let uiMap; // eslint-disable-next-line require-jsdoc function resolve (...dir) { return path.join.apply(this, [__dirname, '..'].concat(dir)); } module.exports = function(isSync, extendBaseScss, extendScss) { // return function(importName, styleName, hasImportName) { genScssVar(extendBaseScss, extendScss); return function(importName) { if (!uiMap) { uiMap = transform(true, isSync, ''); console.log('UiMap', uiMap); } let _moduleDir = uiMap[(importName || '').toLowerCase()]; if (!_moduleDir) { console.log('importName', importName); } return _moduleDir; }; }; /** * 生成_var.scss * @param {*} extendBaseScss 注入的内容 * @param {*} extendScss 注入的内容 */ function genScssVar(extendBaseScss, extendScss) { if (extendScss || extendBaseScss) { if (typeof extendScss === 'string') { extendScss = [extendScss]; } else if (!extendScss) { extendScss = []; } if (typeof extendBaseScss === 'string') { extendBaseScss = [extendBaseScss]; } else if (!extendBaseScss) { extendBaseScss = []; } let defaultStr = fs.readFileSync(resolve('src/_assets/style/_var.scss.default')); if (!(defaultStr instanceof Array)) { defaultStr = (defaultStr.toString() || '').split(';'); } if (extendScss instanceof Array) { defaultStr.splice(1, 0, ...extendBaseScss); defaultStr = defaultStr.concat(extendScss); } let list = []; (defaultStr || []).forEach((item) => { item = item.replace('\n', '').replace('\r', ''); if (item && item !== '\n') { list.push(item); } }); list.push(''); fs.writeFileSync(resolve('src/_assets/style/_var.scss'), list.join(';\n')); } }