UNPKG

agile-cli

Version:

agile系列框架整合使用脚手架(agile-ui、agile-ce、agile-component等)

70 lines (51 loc) 1.82 kB
define(['require'], function(require) { var lessAPI = {}; lessAPI.pluginBuilder = './less-builder'; if (typeof window == 'undefined') { lessAPI.load = function(n, r, load) { load(); } return lessAPI; } lessAPI.normalize = function(name, normalize) { if (name.substr(name.length - 5, 5) == '.less') name = name.substr(0, name.length - 5); name = normalize(name); return name; } var head = document.getElementsByTagName('head')[0]; var base = document.getElementsByTagName('base'); base = base && base[0] && base[0] && base[0].href; var pagePath = (base || window.location.href.split('#')[0].split('?')[0]).split('/'); pagePath[pagePath.length - 1] = ''; pagePath = pagePath.join('/'); var styleCnt = 0; var curStyle; lessAPI.inject = function(css) { console.log(css); if (styleCnt < 31) { curStyle = document.createElement('style'); curStyle.type = 'text/css'; head.appendChild(curStyle); styleCnt++; } if (curStyle.styleSheet) curStyle.styleSheet.cssText += css; else curStyle.appendChild(document.createTextNode(css)); } lessAPI.load = function(lessId, req, load, config) { window.less = config.less || {}; window.less.env = 'development'; require(['./lessc', './normalize'], function(lessc, normalize) { var fileUrl = req.toUrl(lessId + '.less'); fileUrl = normalize.absoluteURI(fileUrl, pagePath); var parser = new lessc.Parser(window.less); parser.parse('@import (multiple) "' + fileUrl + '";', function(err, tree) { if (err) return load.error(err); lessAPI.inject(normalize(tree.toCSS(config.less), fileUrl, pagePath)); setTimeout(load, 7); }, window.less); }); } return lessAPI; });