UNPKG

@yinxulai/babel-plugin-less

Version:

一个 `Babel` 插件,用来帮助你对文件中引用的 `less` 进行预处理、转换成 `css` 并自动管理, 支持 `cssModule`, `autoPrefix`

20 lines 1.53 kB
"use strict"; 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