UNPKG

vite-uni-dev-tool

Version:

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

28 lines (27 loc) 2.42 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("../../utils/index.js");function d(e,t){var s;const o=t.pages.some(r=>e.includes(r.path)),n=((s=t.subPackages)==null?void 0:s.some(r=>r.pages.some(c=>e.includes(`${r.root}/${c.path}`))))??!1;return{isPage:o,isSubPage:n}}function E(e,t,o,n){return{shouldInjectConsole:!!n,hasExistingConsoleImport:u.hasImportConsole(e),usesConsole:u.hasUseConsole(e),isExcludedFromConsole:!u.hasDirOrFile(t,o)}}function T(e,t,o,n){return{shouldInjectDevToolEventBus:!!n,hasExistingDevToolEventBusImport:u.hasImportDevToolEventBus(e),usesDevToolEventBus:u.hasUseDevToolEventBus(e),isExcludedFromDevToolEventBus:!u.hasDirOrFile(t,o)}}function f(e,t,o,n){const{isPage:s,isSubPage:r}=d(e,o);return{isPageOrSubPage:s||r,hasTemplate:t.includes("<template>"),isExcludedFromDevTool:!u.hasDirOrFile(e,n)}}function g(e,t,o,n){const s=e.match(u.regScript);if(!s||!s[1])return e;const r=s[1],c=[];o&&c.push("console"),n&&c.push("devToolEventBus");let l="";c.length&&(l=`import { ${c.join(", ")} } from 'vite-uni-dev-tool/dist/core';`);const i=` ${l} ${r} `.trim();return e.replace(u.regScript,`${t} ${i} <\/script>`)}function C(e){const t=u.getTemplateContent(e);if(!t)return e;const o=` <view data-dev-page> <view data-dev-capture @tap.capture="(e)=>{ devToolEventBus?.emit?.('dev-capture-tap-event', e); }" @touchstart.capture="(e)=>{ devToolEventBus?.emit?.('dev-capture-touch-start-event', e); }" @touchmove.capture="(e)=>{ devToolEventBus?.emit?.('dev-capture-touch-move-event', e); }" @touchend.capture="(e)=>{ devToolEventBus?.emit?.('dev-capture-touch-end-event', e); }" > ${t} </view> <DevTool /> </view> `;return e.replace(t,o)}const B=({id:e,code:t,pages:o,scriptRow:n,importConsole:s,importEventBus:r,excludeImportConsole:c,excludeImportDevTool:l})=>{try{let i=t;const a=E(t,e,c,s),v=T(t,e,l,r),m=a.shouldInjectConsole&&!a.hasExistingConsoleImport&&a.usesConsole&&a.isExcludedFromConsole,h=v.shouldInjectDevToolEventBus&&!v.hasExistingDevToolEventBusImport&&v.usesDevToolEventBus&&v.isExcludedFromDevToolEventBus;(m||h)&&(i=g(i,n,m,h));const p=f(e,t,o,l);return p.isPageOrSubPage&&p.hasTemplate&&p.isExcludedFromDevTool&&(i=C(i)),{code:i,map:null}}catch(i){return console.error("[DevTool] 转换 Vue 文件时出错:",i),{code:t,map:null}}};exports.transformVue=B;