UNPKG

vite-uni-dev-tool

Version:

vite-uni-dev-tool, debug, uni-app, 一处编写,到处调试

45 lines (44 loc) 2.79 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../../utils/index.js");function v(s){const{lines:n,importConsole:u,netWorkInfo:p,sourceFileServers:l,reset:a}=s,i=n.join(` `),c=o.hasImportCurrentInstance(i),m=o.hasImportOnLaunch(i),d=o.hasImportOnExit(i);c||n.unshift("import { getCurrentInstance } from 'vue';");const t=[];m||t.push("onLaunch"),d||t.push("onExit"),t.length&&n.unshift(`import { ${t.join(", ")} } from '@dcloudio/uni-app';`),n.unshift(`import { initDevTool, uploadAbnormal${u?", console":""} } from 'vite-uni-dev-tool/dist/core';`,"import pagesJson from './pages.json';");const e=` const vueInstance = getCurrentInstance(); initDevTool({ pagesJson, vueInstance, mode: import.meta.env.MODE, sourceFileServers: [ ${[...p.urls??[],...l??[]].map(I=>`'${I}'`).join(`, `)} ], ...${JSON.stringify(a)}, });`,f=o.findInsertionIndex(n,I=>I.includes("onLaunch("));f!==-1?n.splice(f,0,e):n.push(` onLaunch(() => { ${e} });`);const h=o.findInsertionIndex(n,I=>I.includes("onExit("));return h!==-1?n.splice(h,0,` uploadAbnormal({ immediately: true }); `):n.push(` onExit(() => { uploadAbnormal({ immediately: true }); }); `),n}function x(s){const{lines:n,netWorkInfo:u,sourceFileServers:p,importConsole:l,reset:a}=s,i=n.join(` `);o.hasImportVue(i)||n.unshift("import Vue from 'vue';"),n.unshift(`import { initDevTool, uploadAbnormal${l?", console":""} } from 'vite-uni-dev-tool/dist/core';`,"import pagesJson from './pages.json';");const d=` initDevTool({ pagesJson, vueInstance: Vue, mode: import.meta.env.MODE, sourceFileServers: [ ${[...u.urls??[],...p??[]].map(e=>`'${e}'`).join(`, `)} ], ...${JSON.stringify(a)}, });`,t=o.findInsertionIndex(n,e=>e.includes("onLaunch(")||e.includes("onLaunch:"));if(t!==-1)n.splice(t+1,0,d);else{const e=o.findInsertionIndex(n,f=>f.includes("export default"));e!==-1&&n.splice(e+1,0,` onLaunch: function() { ${d} },`)}const r=o.findInsertionIndex(n,e=>e.includes("onExit(")||e.includes("onExit:"));return r!==-1?n.splice(r+1,0,` uploadAbnormal({ immediately: true }); `):n.push(` onExit: function() { uploadAbnormal({ immediately: true }); }); `),n}const g=({code:s,isSetup:n,importConsole:u,scriptRow:p,netWorkInfo:l,sourceFileServers:a,reset:i})=>{const c=s.match(o.regScript);if(!c||!c[1])return{code:s,map:null};try{const t={lines:c[1].trim().split(` `),isSetup:n,importConsole:u,netWorkInfo:l,sourceFileServers:a,reset:i},r=n?v(t):x(t);r.unshift(p),r.push("<\/script>");const e=r.join(` `);return{code:s.replace(o.regScript,e),map:null}}catch(m){return console.error("[DevTool] 转换 App.vue 文件时出错:",m),{code:s,map:null}}};exports.transformApp=g;