@yinxulai/babel-plugin-less
Version:
一个 `Babel` 插件,用来帮助你对文件中引用的 `less` 进行预处理、转换成 `css` 并自动管理, 支持 `cssModule`, `autoPrefix`
20 lines • 1.53 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var template_1 = __importDefault(require("@babel/template"));
// 挂载 style 的模版
function insertStyleElement(elementID, css) {
// TODO: 防止内容包含特殊字符干扰
// 浏览器如何还原 base64 是个问题,还得支持 ssr
// const encodeCss = Buffer.from(css).toString('base64')
// const encodeElementID = Buffer.from(elementID).toString('base64')
return template_1.default.statement("\n (function(elementID, css) {\n // \u73AF\u5883\u68C0\u67E5\n if (typeof (window) == 'undefined') return;\n if (typeof (document) == 'undefined') return;\n if (typeof (document.head) == 'undefined') return;\n if (window.document.getElementById(elementID)) return;\n \n // \u521B\u5EFA style\n const style = document.createElement('style');\n style.type=\"text/css\"\n style.id = elementID;\n style.innerHTML = css;\n\n // \u63D2\u5165 dom\n document.head.appendChild(style);\n })(`" + elementID + "`, `" + css + "`);\n ")();
}
exports.insertStyleElement = insertStyleElement;
function styleTokenMap(variableName, tokens) {
return template_1.default.statement("\n const " + variableName + " = " + JSON.stringify(tokens) + ";\n ")();
}
exports.styleTokenMap = styleTokenMap;
//# sourceMappingURL=template.js.map