@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
オブジェクトが存在すると想定することもできます。理想的には、より少ないパーサーオブジェクトをこのプラグイン自体にプルして、グローバルをまったく作成しないようにします。
これを使用して、次のようなことができます。
require(['less!global.less'], function(elem) {
});
その時点で、global.lessが解析されてページに追加され、何らかの理由でスタイル要素を削除または変更する必要がある場合に備えて、スタイル要素を指すelemが返されます。
誰かが何か入力を持っているか、これを行うためのより良い方法を知っていますか?
乾杯