UNPKG

fis3-prepackager-css2js

Version:

compile cssstyles into js module

40 lines (35 loc) 1.18 kB
const _ = fis.util; module.exports = function css2js(ret, conf, settings, opt) { let INC_RE = settings.includeRE || /\.css$/; const warpType = settings.warpType || 'cmd'; const tpl = _warpTemplate.call(this, warpType); _.map(ret.ids, (key, val) => { if (INC_RE.test(key) && /\.css$/.test(key)) { const compiled = _.template(tpl); const _content = _replaceChar.call(this, val._content); val._content = compiled({ 'id': key, 'content': _content }); val.release += '.js'; ret.ids[key] = val; return ret.ids[key]; } }); }; function _warpTemplate(type) { switch (type.toLowerCase()) { case 'scrat': return 'require.defineCSS(\'<%= id %>\', \'<%= content %>\');'; break; case 'amd': return 'define(\'<%= id %>\', function(){ return \'<%= content %>\' });'; break; default: return 'define(\'<%= id %>\', function(require, exports, module){ module.exports = \'<%= content %>\' });'; break; } } // 防止 '"/ 等字符转义 function _replaceChar(char) { return char.replace(/\//g, '\/').replace(/[\n|\r]/g, ' ').replace(/('|")/g, function ($1) { return '\\' + $1; }); }