UNPKG

vite-bundle-analyzer

Version:
2 lines (1 loc) 7.4 kB
"use strict";var e=require("./index-Dar60XP9.js"),t=require("fs"),n=require("path"),r=require("module"),o=require("url");require("child_process"),require("node:fs/promises"),require("zlib"),require("stream"),require("util"),require("os"),require("events"),require("http"),require("net");var i="undefined"!=typeof document?document.currentScript:null;function a(e){return null==e?[]:Array.isArray(e)?e:[e]}const s=r.createRequire("undefined"==typeof document?require("url").pathToFileURL(__filename).href:i&&"SCRIPT"===i.tagName.toUpperCase()&&i.src||new URL("cli.js",document.baseURI).href);function l(e,t){let n=s.resolve(e,{paths:[t]});return o.pathToFileURL(n).href}let u="\n";"win32"===process.platform&&(u="\r\n");const c="Analyzer modes. Should be `server`, `static` or `json`. "+u+e.a.green("In `server` mode analyzer will start HTTP server to show bundle report.")+u+e.a.green("In `static` mode single HTML file with bundle report will be generated.(If you use this mode with `openAnalyzer` option also start HTTP server).")+u+e.a.green("In `json` mode single JSON file with bundle report will be generated."),f=process.cwd(),d=["js","mjs","cjs","ts","mts","cts"];async function p(r){let{engine:i,config:a,mode:s,filename:u,port:c,open:p,summary:g,...h}=r,m=function(r){if(r)return r;let o=e.searchForPackageRoot(process.cwd());for(let e of d){let r=n.join(o,"vite.config."+e);if(t.existsSync(r))return r}throw Error("Missing Vite configuration file. Use --config <path> to specify location")}(a),b=await function(r="vite"){return import(function(r){let i=e.searchForWorkspaceRoot(f),a=t.existsSync(n.join(i,"pnpm-lock. yaml"))||t.existsSync(n.join(i,"pnpm-workspace.yaml"))?"pnpm":t.existsSync(n.join(i,"bun.lock"))?"bun":t.existsSync(n.join(i,"yarn.lock"))?"yarn":"npm";e.analyzerDebug(`Resolving '${r}' in ${a} workspace at '${i}'`);let s=null,u=function(e,r){let o=[e,process.cwd()];switch(o.push(n.join(e,"node_modules")),o.push(n.join(process.cwd(),"node_modules")),r){case"pnpm":o.push(n.join(e,"node_modules/.pnpm"));break;case"bun":o.push(n.join(e,"node_modules/.bun"))}let i=process.cwd();for(;i!==n.dirname(i);)o.push(n.join(i,"node_modules")),i=n.dirname(i);return[...new Set(o)].filter(e=>t.existsSync(e))}(i,a);for(let o of u)if(s=function(e,r){let o=n.join(r,"node_modules",e);if(t.existsSync(o)){let e=n.join(o,"package.json");if(t.existsSync(e))return o}return null}(r,o)){e.analyzerDebug(`Found package '${r}' at '${s}' via standard search`);break}if(!s){e.analyzerDebug(`Falling back to Node.js resolution for '${r}'`);try{return l(r,i)}catch(e){try{return l(r,process.cwd())}catch{if(e instanceof Error)throw Error(`Can not find module '${r}' in ${a} workspace at '${i}'. Searched paths: ${u.join(", ")}. Resolution error: ${e.message}`)}}}if(!s)throw Error(`Can not find module '${r}' in '${i}'`);var c=s;let d=n.join(c,"package.json");if(!t.existsSync(d))throw Error(`package.json not found for module '${r}' at '${c}'`);let p=JSON.parse(t.readFileSync(d,"utf-8")),g=p.module||p.main,h="module"===p.type;if(p.exports&&!g)for(g=p.exports["."]||p.exports["./index"]||p.exports["./index.js"];"string"!=typeof g;)if(g)g=h?g.import||g.default:g.require||g.default;else break;if(!g)throw Error(`Cannot find entry point for module '${r}'`);if(g=n.join(c,g),t.existsSync(g)&&t.statSync(g).isFile())return o.pathToFileURL(g).href;throw Error(`Cannot resolve entry point for package '${r}'`)}(r))}(i);await b.build({configFile:m,plugins:[e.analyzer({analyzerMode:s,fileName:u,openAnalyzer:p,summary:g,analyzerPort:+c,...h})]})}const g={mode:{alias:"m",desc:c,default:"server",flag:"<mode>"},filename:{alias:"f",desc:"Output file name. If not specified will be generated automatically.",default:"stats"},port:{alias:"p",desc:"Port for HTTP server.",default:"8888",flag:"<port>"},reportTitle:{alias:"t",desc:"Title for bundle report.",default:"vite-bundle-analyzer",flag:"[title]"},open:{alias:"o",desc:"Open report in default browser.",default:!0,flag:"[bool]"},defaultSizes:{alias:"d",desc:"Default size type. Should be `stat`, `gzip` or `brotli`.",default:"stat",flag:"<string>"},summary:{alias:"s",desc:"Show full chunk info to stdout.",default:!0,flag:"[bool]"},config:{alias:"c",desc:"Path to vite config file. Automic search for vite configuration in your current workspace.",default:"",flag:"<path>"},include:{alias:"include",desc:"Include all assets matching any of these conditions",default:[],flag:"<string>"},exclude:{alias:"exclude",desc:"Exclude all assets matching any of these conditions.",default:[],flag:"<string>"},engine:{alias:"e",desc:"Specify the bundle engine for cli. Can be `vite`, `rolldown-vite`.",default:"vite",flag:"<string>"}},h=function(e,t){t=t||{};var n,r,o,i,s,l={_:[]},u=0,c=0,f=0,d=(e=e||[]).length;let p=void 0!==t.alias,g=void 0!==t.unknown,h=void 0!==t.default;if(t.alias=t.alias||{},t.string=a(t.string),t.boolean=a(t.boolean),p)for(n in t.alias)for(u=0,r=t.alias[n]=a(t.alias[n]);u<r.length;u++)(t.alias[r[u]]=r.concat(n)).splice(u,1);for(u=t.boolean.length;u-- >0;)for(c=(r=t.alias[t.boolean[u]]||[]).length;c-- >0;)t.boolean.push(r[c]);for(u=t.string.length;u-- >0;)for(c=(r=t.alias[t.string[u]]||[]).length;c-- >0;)t.string.push(r[c]);if(h){for(n in t.default)if(i=typeof t.default[n],r=t.alias[n]=t.alias[n]||[],void 0!==t[i])for(t[i].push(n),u=0;u<r.length;u++)t[i].push(r[u])}let m=g?Object.keys(t.alias):[];for(u=0;u<d;u++){if("--"===(o=e[u])){l._=l._.concat(e.slice(++u));break}for(c=0;c<o.length&&45===o.charCodeAt(c);c++);if(0===c)l._.push(o);else if("no-"===o.substring(c,c+3)){if(i=o.substring(c+3),g&&!~m.indexOf(i))return t.unknown(o);l[i]=!1}else{for(f=c+1;f<o.length&&61!==o.charCodeAt(f);f++);for(i=o.substring(c,f),s=o.substring(++f)||u+1===d||45===(""+e[u+1]).charCodeAt(0)||e[++u],r=2===c?[i]:i,f=0;f<r.length;f++){if(i=r[f],g&&!~m.indexOf(i))return t.unknown("-".repeat(c)+i);!function(e,t,n,r){var o,i=e[t],a=~r.string.indexOf(t)?null==n||!0===n?"":String(n):"boolean"==typeof n?n:~r.boolean.indexOf(t)?"false"!==n&&("true"===n||(e._.push(0*(o=+n)==0?o:n),!!n)):0*(o=+n)==0?o:n;e[t]=null==i?a:Array.isArray(i)?i.concat(a):[i,a]}(l,i,f+1<r.length||s,t)}}}if(h)for(n in t.default)void 0===l[n]&&(l[n]=t.default[n]);if(p)for(n in l)for(r=t.alias[n]||[];r.length>0;)l[r.shift()]=l[n];return l}(process.argv.slice(2),{alias:Object.fromEntries(Object.entries(g).map(([e,{alias:t}])=>[t,e])),default:Object.fromEntries(Object.entries(g).map(([e,{default:t}])=>[e,t])),boolean:["open","summary"]});exports.OPTIONS=g,exports.exec=function(){(h.h||h.help)&&(!function(){console.log("Usage: vite-bundle-analyzer [options]"+u),console.log("Options:");let e=Object.entries(g).map(([e,t])=>`-${t.alias}, --${e} ${t.flag||""}`).reduce((e,t)=>Math.max(e,t.length),0),t=" ".repeat(e+6);for(let[n,r]of Object.entries(g)){let o=`-${r.alias}, --${n} ${r.flag||""}`.padEnd(e+4),i=r.default?` (default: ${function(e){if(null==e)return"";switch(typeof e){case"boolean":case"number":return e.toString();case"string":return e;case"object":return"[object]";case"function":return"[function]";default:return""}}(r.default)})`:"",[a,...s]=r.desc.split(u);if(!s.length){console.log(` ${o}${a}${i}`);continue}console.log(` ${o}${a}`);let l=s.length-1;for(let e=0;e<s.length;e++){let n=s[e];if(e===l){console.log(`${t}${n}${i}`);break}console.log(`${t}${n}`)}console.log("")}}(),process.exit(0)),p(h).catch(e=>{console.error(e),process.exit(1)})};