vite-plugin-jue
Version:
## 快速开始
2 lines (1 loc) • 3.35 kB
JavaScript
require("fs");var e=require("path"),t=require("css2json"),r=require("htmlparser2"),n=require("sass"),a=require("less");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function l(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var i=s(e),c=s(t),u=s(r),o=s(n),p=s(a);const f=i.default,g=c.default,d=u.default,v=o.default,m=p.default;var j,h,_,y=[],b="",O="";let q="";var J=function(e,t,r,n){const a=this;let s=t.lastIndexOf("/");if(q=t.substr(0,s),!(j=t.substr(s+1,t.length-s)))return void console.log("文件名解析错误,请查看编译功能代码");let i=t.replace(j,"config.json"),c=(u=i,Promise.resolve().then((function(){return l(require(u))})));var u;h=0;var o="";let p={};var f=new d.Parser({onopentag:function(e,t){var r;p=t,"template"==e?(_="template",r=function(e,t){if(y=new Array,t){return"var template = JRTemplateManager._jr_create_jue_template('"+e+"',"+JSON.stringify(t)+");\n"}return"var template = JRTemplateManager._jr_create_jue_template('"+e+"');\n"}(j,c),r+=w(j,"document",t)):"script"==e?_="script":"style"==e?_="style":r=w(j,e,t),void 0!==r&&(o+=r)},ontext:function(e){if(1!=h)if("template"==_&&e.length>0){var t=function(e,t){var r=y[y.length-1];if(0==(t=(t=(t=(t=(t=t.replace(/\r\n/g,"")).replace(/\n/g,"")).replace(/\s/g,"")).replace(/jrtransblank/g," ")).replace(/'/g,'"')).length)return"";return"JRTemplateManager._jr_add_t_node_value('"+e+"','"+r+"','value', '"+t+"');\n"}(j,e);o+=t}else{if("script"==_)return void(b=e);if("style"==_)return void(O=e)}else h=0},onclosetag:async function(e){if("script"!=e){if("style"==e)if(h=1,"sass"===p.lang||"scss"===p.lang){const e=v.compileString(O).css;o+=M(e)}else if("less"===p.lang){const e=a.async();m.render(O).then((t=>{const a=t.css;o+=M(a),e(null,o,r,n)}))}else o+=M(O);y.pop()}else{h=1;var t=b.replace(/jrtransleft/g,"<").replace(/jrtransright/g,">"),s=function(e){const t=/((?:^|\n|;)\s*)export(\s*)default/;return e.replace(t,"\n template.script =")+'\n template.script["filename"]=\''+j+"'\n\n export default template.script"}(b=t);o+=s}}},{decodeEntities:!0,lowerCaseTags:!1}),g=e,J=e.split(/<script>|<\/script>/g);if(3==J.length){var x=J[1].replace(/</g,"jrtransleft").replace(/>/g,"jrtransright");g=J[0]+"<script>"+x+"<\/script>"+J[2]}var S=g.replace(/ /g,"jrtransblank");return f.write(S),f.end(),o};function w(e,t,r){var n,a,s=0!=y.length?y[y.length-1]:0,l=function(){function e(){return(65536*(1+Math.random())|0).toString(16).substring(1)}return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()}();if(void 0!==r&&null!=r){var i=r.src;if(void 0!==i&&null!=i){var c=/^http:\/\/.*/i.test(i),u=/^https:\/\/.*/i.test(i);if(!c&&!u){n='"'+i+'"',a=`'${f.resolve(q,i).replace(process.cwd(),"")}'`}}}var o=JSON.stringify(r);void 0!==n&&0!=n&&void 0!==a&&0!=a&&(o=o.replace(n,a));var p="JRTemplateManager._jr_create_t_node('"+e+"','"+s+"','"+l+"','"+t+"', "+o+");\n";return y.push(l),p}function M(e){let t=g(e);return"\n template.style = "+JSON.stringify(t)+"\n"}module.exports=function(e){const t=/\.(jue)$/;return{name:"vite-plugin-jue",transform(e,r){if(t.test(r))return{code:J(e,r),map:null}}}};
;