@jrburke:我根据您的代码整理了一个快速 requirejs 插件:
define({
version: '0.1',
load: function(name, req, onLoad, config) {
req(['text!' + name, 'base/less'], function(lessText) {
var styleElem;
(new less.Parser()).parse(lessText, function (err, css) {
if (err) {
if (typeof console !== 'undefined' && console.error) {
console.error(err);
}
} else {
styleElem = document.createElement('style');
styleElem.type = 'text/css';
if (styleElem.styleSheet)
styleElem.styleSheet.cssText = css.toCSS();
else
styleElem.appendChild( document.createTextNode( css.toCSS() ) );
document.getElementsByTagName("head")[0].appendChild( styleElem );
}
onLoad(styleElem);
});
});
}
});
“base/less”指向较少的来源。您也可以提前加载它,并假设全局less
对象存在。理想情况下,我想将 less Parser 对象拉入这个插件本身,这样它就不会创建一个全局对象。
使用它,我可以执行以下操作:
require(['less!global.less'], function(elem) {
});
此时,global.less 已被解析并添加到页面中,并返回指向样式元素的 elem,以防我出于某种原因需要删除或修改它。
有没有人有任何意见或知道这样做的更好方法?
干杯