@empjs/cli 3.0.0-rc.14 → 3.0.0-rc.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/helper/logger.d.ts +1 -0
- package/dist/index.js +12 -12
- package/dist/store/empConfig.d.ts +2 -4
- package/dist/types/config.d.ts +3 -4
- package/package.json +2 -1
- package/template/index.html +3 -0
package/dist/helper/logger.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
var vt=Object.defineProperty;var l=(i,e)=>()=>(i&&(e=i(i=0)),e);var
|
|
2
|
-
`)};cyan=e=>{console.log(`${h.white.bgCyan(this.
|
|
3
|
-
`)};magenta=e=>{console.log(`${h.white.bgMagenta(this.
|
|
4
|
-
`)};green=e=>{console.log(`${h.white.bgGreen(this.
|
|
5
|
-
`)};yellow=e=>{console.log(`${h.white.bgYellow(this.
|
|
6
|
-
`)};red=e=>{console.log(`${h.white.bgRed(this.
|
|
1
|
+
var vt=Object.defineProperty;var l=(i,e)=>()=>(i&&(e=i(i=0)),e);var V=(i,e)=>{for(var t in e)vt(i,t,{get:e[t],enumerable:!0})};import h from"chalk";var q,p,v=l(()=>{"use strict";q=class{pname="";brandName="";logLevel="debug";setup({pname:e,logLevel:t}){this.pname=e,this.brandName=` ${this.pname} `,t&&(this.logLevel=t)}debug=(...e)=>["debug"].includes(this.logLevel)&&console.log(...e);info=(...e)=>["debug","info"].includes(this.logLevel)&&console.log(...e);warn=(...e)=>["debug","info","warn"].includes(this.logLevel)&&console.warn(...e);error=(...e)=>["debug","info","warn","error"].includes(this.logLevel)&&console.error(...e);blue=e=>{console.log(`${h.white.bgBlue(this.brandName)}${h.blue.bgWhite(` ${e} `)}
|
|
2
|
+
`)};cyan=e=>{console.log(`${h.white.bgCyan(this.brandName)}${h.cyan.bgWhite(` ${e} `)}
|
|
3
|
+
`)};magenta=e=>{console.log(`${h.white.bgMagenta(this.brandName)}${h.magenta.bgWhite(` ${e} `)}
|
|
4
|
+
`)};green=e=>{console.log(`${h.white.bgGreen(this.brandName)}${h.green.bgWhite(` ${e} `)}
|
|
5
|
+
`)};yellow=e=>{console.log(`${h.white.bgYellow(this.brandName)}${h.yellow.bgWhite(` ${e} `)}
|
|
6
|
+
`)};red=e=>{console.log(`${h.white.bgRed(this.brandName)}${h.red.bgWhite(` ${e} `)}
|
|
7
7
|
`)};sysError=e=>{console.log(`${h.white.bgRed(" System Error Tips ")}${h.red.bgWhite(` ${e} `)}
|
|
8
|
-
`)};link=e=>h.hex("#3498db")(e);title=e=>{console.log(`${h.greenBright.bold(
|
|
9
|
-
`)}},p=new
|
|
10
|
-
`);return Ee(i)},B=class{constructor(){}apply(e){let{webpack:t}=e;new t.EntryPlugin(e.context,Rt(),{name:void 0}).apply(e)}}});var z,Be=l(()=>{"use strict";u();ie();re();z=class{op={};constructor(e={}){this.op=e}async afterGetEmpOptions(){await R.setup(),this.op.afterGetEmpOptions&&await this.op.afterGetEmpOptions()}async beforePlugin(){n.empConfig.build.polyfill==="entry"&&n.chain.plugin("empPolyfill").use(B),this.op.beforePlugin&&await this.op.beforePlugin()}async afterPlugin(){this.op.afterPlugin&&await this.op.afterPlugin()}async beforeModule(){this.op.beforeModule&&await this.op.beforeModule()}async afterModule(){this.op.afterModule&&await this.op.afterModule()}async beforeEmpPlugin(){this.op.beforeEmpPlugin&&await this.op.beforeEmpPlugin()}async afterEmpPlugin(){this.op.afterEmpPlugin&&await this.op.afterEmpPlugin()}async beforeBuild(){this.op.beforeBuild&&await this.op.beforeBuild()}async afterBulid(){this.op.afterBulid&&await this.op.afterBulid()}async beforeDevServe(){this.op.beforeDevServe&&await this.op.beforeDevServe()}async afterDevServe(){this.op.afterDevServe&&await this.op.afterDevServe()}async beforeServe(){this.op.beforeServe&&await this.op.beforeServe()}async afterServe(){this.op.afterServe&&await this.op.afterServe()}}});import Ft from"node:fs";var oe,ze,Ie=l(()=>{"use strict";y();Me();je();Be();oe=class{store;appSrc="src";appEntry="";base="";target=[];assign(e,t){return t=t||{},f(e,t)}empShareFastMode=new T;empShareLib=new L;isESM=!1;async autoDevSet(){this.store.mode==="development"&&this.store.empOptions.autoDevBase}checkIsESM(e){return["es3","es5"].indexOf(e)===-1}lifeCycle;async setup(e){this.store=e,await this.syncEmpOptions(),this.lifeCycle=new z(this.store.empOptions.lifeCycle),await this.lifeCycle.afterGetEmpOptions(),this.isESM=this.checkIsESM(this.build.target),this.store.empOptions.target?(this.target=this.store.empOptions.target,Array.isArray(this.target)&&!this.target.includes(this.build.target)&&this.target.push(this.build.target)):this.target=["web",this.build.target];let{appSrc:t,base:s,appEntry:r}=this.store.empOptions;t&&(this.appSrc=t),s&&(this.base=s),r&&(this.appEntry=r),this.store.empConfig.empShare&&await this.empShareLib.setup()}async chain(){this.store.empOptions.chain&&await this.store.empOptions.chain(this.store.chain)}async plugins(){let e=[];this.store.empOptions.plugins&&Array.isArray(this.store.empOptions.plugins)&&this.store.empOptions.plugins.length>0&&(this.store.empOptions.plugins.map(t=>{e.push(t.rsConfig(this.store))}),await Promise.all(e))}get debug(){return this.assign({loggerLevel:"info",clearLog:!0,progress:!0,showRsconfig:!1,showPerformance:!1,rspackCache:!0,infrastructureLogging:{appendOnly:!0,level:"warn"},newTreeshaking:this.store.empConfig.isESM},this.store.empOptions.debug)}get build(){let e=this.store.empOptions.build?.staticDir?`${this.store.empOptions.build?.staticDir}/`:"";return this.assign({outDir:"dist",staticDir:e,assetsDir:"assets",publicDir:"public",chunkIds:this.store.isDev?"named":"deterministic",moduleIds:this.store.isDev?"named":"deterministic",sourcemap:!0,minify:!this.store.isDev,minOptions:{},target:"es5",polyfill:!1,polyfillInclude:["es.object.values","es.object.entries","es.array.flat"],coreJsFeatures:"stable",externalHelpers:!1,browserslist:this.store.browserslistOptions.default,swcConfig:{}},{...this.store.empOptions.build,staticDir:e})}get html(){let e=this.store.empOptions.html?.template?{}:{charset:{charset:"utf-8"},"http-equiv":{"http-equiv":"X-UA-Compatible",content:"IE=edge"},viewport:{name:"viewport",content:"width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0"},keywords:{keywords:""},description:{description:""}};return this.assign({lang:"zh-CN",title:"EMP",inject:"body",minify:!this.store.isDev,scriptLoading:this.isESM?"module":"defer",meta:e,files:{css:[],js:[]},tags:{headTags:[],bodyTags:[]}},this.store.empOptions.html)}get entries(){return this.store.empOptions.entries?this.store.empOptions.entries:{}}get server(){let e={host:"0.0.0.0",port:8e3,open:process.platform==="darwin",hot:!0,watchFiles:["src/**/*.html"],static:[{directory:this.store.publicDir,watch:this.store.isDev}],allowedHosts:["all"],historyApiFallback:!0,headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, PATCH, OPTIONS","Access-Control-Allow-Headers":"X-Requested-With, content-type, Authorization"}};return this.assign(e,this.store.empOptions.server)}get empShare(){return this.assign({name:"",filename:"emp.js",shared:{}},this.store.empOptions.empShare)}get css(){return this.assign({postcss:[]},this.store.empOptions.css)}get output(){let e=(this.store.isDev,".[contenthash:8]"),t=this.store.isDev?"":".[contenthash:8]",{assetsDir:s,staticDir:r}=this.store.empConfig.build,o={publicPath:this.store.empConfig.base?this.store.empConfig.base:"auto",crossOriginLoading:"anonymous",filename:`${r}js/[name]${e}.js`,cssFilename:`${r}css/[name]${t}.css`,cssChunkFilename:`${r}css/[name]${t}.css`,assetModuleFilename:`${r}${s}/[name]${e}[ext][query]`,path:this.store.outDir,clean:!0};return this.store.isDev&&this.store.empConfig.empShare.dts!==!1&&(o.clean=!1),this.assign(o,this.store.empOptions.output)}get define(){let e={mode:this.store.mode,env:this.store.cliOptions.env};return this.store.empOptions.define&&(e={...e,...this.store.empOptions.define}),this.setDefine(e)}setDefine(e){let t=this.store.empOptions.defineFix?this.store.empOptions.defineFix:this.isESM?"esm":"cjs",s={};return Object.keys(e).map(r=>{(t==="all"||t==="esm")&&(s[`import.meta.env.${r}`]=JSON.stringify(e[r])),(t==="all"||t==="cjs")&&(s[`process.env.${r}`]=JSON.stringify(e[r])),s[`${r}`]=JSON.stringify(e[r])}),s}get externals(){return this.assign(this.empShareLib.externals,this.store.empOptions.externals)}get resolve(){return f({alias:{src:this.store.resolve("src"),"@":this.store.resolve("src")},extensions:["...",".js",".jsx",".mjs",".ts",".tsx",".css",".less",".scss",".sass",".json",".wasm",".vue",".svg",".svga"]},this.store.empOptions.resolve)}async syncEmpOptions(){let e=this.store.resolve("emp-config.js");if(!Ft.existsSync(e))return;let{default:t}=await import(this.store.importFileUrl(e));typeof t=="function"?this.store.empOptions=await t(this.store):this.store.empOptions=t||{}}get moduleTransformRule(){let{moduleTransform:e}=this.store.empOptions,t=this.assign({defaultExclude:!1},e),s={and:[],not:[]};return t.defaultExclude===!0&&s.and.push(/(node_modules|bower_components)/),t?.exclude&&(s.and=s.and.concat(t.exclude)),e?.include&&(s.not=t.include),s}get cacheDir(){return this.store.empOptions.cacheDir?this.store.empOptions.cacheDir:"node_modules/.emp-cache"}get ignoreWarnings(){return this.store.empOptions.ignoreWarnings?this.store.empOptions.ignoreWarnings:[/Conflicting order/]}get autoPages(){let e;return this.store.empOptions.autoPages&&(e=typeof this.store.empOptions.autoPages=="boolean"?{}:this.store.empOptions.autoPages,e=this.assign({path:"pages"},e)),e}},ze=new oe});import At from"fs-extra";var ne,Ge,He=l(()=>{"use strict";ne=class{store;async setup(e){this.store=e;let t=[this.common(),this.stats(),this.devServer(),this.optimization(),this.checkTsconfig()];await Promise.all(t)}async common(){this.store.merge({node:{global:!0},experiments:{rspackFuture:{newTreeshaking:this.store.empConfig.debug.newTreeshaking},outputModule:this.store.empConfig.isESM,topLevelAwait:!0},target:this.store.empConfig.target,infrastructureLogging:this.store.empConfig.debug.infrastructureLogging,context:this.store.root,mode:this.store.mode,cache:this.store.empConfig.debug.rspackCache,devtool:this.store.empConfig.build.sourcemap?"source-map":!1,builtins:{},output:this.store.empConfig.output,resolve:this.store.empConfig.resolve,externals:this.store.empConfig.externals,ignoreWarnings:this.store.empConfig.ignoreWarnings})}async checkTsconfig(){let e=this.store.resolve("tsconfig.json");if(await At.exists(e)){let s={tsConfigPath:e};this.store.merge({resolve:s})}}async stats(){this.store.merge({stats:{colors:!0,all:!1,assets:!1,chunks:!1,timings:!0,version:!0}})}async devServer(){this.store.merge({devServer:this.store.empConfig.server})}async optimization(){let e={moduleIds:this.store.empConfig.build.moduleIds,chunkIds:this.store.empConfig.build.chunkIds,minimize:this.store.empConfig.build.minify,splitChunks:{chunks:"async",cacheGroups:{}}};this.store.empConfig.build.polyfill&&(e.splitChunks.cacheGroups={}),this.store.chain.merge({optimization:e})}},Ge=new ne});var ae,Ne,Ue=l(()=>{"use strict";ae=class{store;async setup(e){this.store=e;let t=[this.sass(),this.less(),this.css()];await Promise.all(t)}async sass(){let e={loader:this.store.importResolve("sass-loader"),options:{}};this.store.chain.merge({module:{rule:{sass:{test:/\.(sass|scss)$/,use:{sassLoader:e},type:"css/auto"}}}})}async less(){let e={loader:this.store.importResolve("less-loader"),options:{lessOptions:{javascriptEnabled:!0}}};this.store.chain.merge({module:{rule:{less:{test:/\.less$/,use:{lessLoader:e},type:"css/auto"}}}})}async css(){this.store.chain.merge({module:{rule:{css:{test:/\.css$/,use:{},type:"css/auto"}}}})}},Ne=new ae});import b from"node:path";import{glob as Je}from"glob";import Bt from"html-webpack-plugin";var pe,_e,We=l(()=>{"use strict";y();re();pe=class{store;entriesConfig={};async setup(e){this.store=e,await this.init(),this.toConfig()}setHtmlConfig(e,t){return e.template=this.setTemplate(e.template),e.favicon=this.setFavicion(e.favicon),e.chunks=t,e.filename=`${t[0]}.html`,this.store.empConfig.base&&(e.publicPath=this.store.empConfig.base),e.tags=e.tags||{},e}setChunk(e){return e.replace(b.extname(e),"").replace(`${this.store.empConfig.appSrc}${b.sep}`,"")}setTemplate(e){return e?this.store.resolve(e):this.store.empResolve(b.join("template","index.html"))}setFavicion(e){return e?this.store.resolve(e):this.store.empResolve(b.join("template","favicon.ico"))}setEntryItem(e,t,s){s=s||this.store.resolve(b.join(this.store.empConfig.appSrc,e));let r=this.setChunk(e),o=[s];this.entriesConfig[r]={entry:{[r]:o},html:this.setHtmlConfig(t,[r])},this.store.entries[r]=o}setRspackHtmlPlugin(e,t){this.store.chain.plugin(`html-plugin-${t}`).use(Bt,[e]),this.store.empConfig.empShareLib&&(e.files=f(e.files,this.store.empConfig.empShareLib.externalAssets)),this.store.chain.plugin(`html-plugin-empShare-${t}`).use(A,[e.files,t]),this.store.empConfig.empShareLib.useImportMap&&this.store.chain.plugin(`html-plugin-import-map-${t}`).use(F,[this.store.empConfig.empShareLib.importMap,t])}setRspackEntry(e){this.store.merge({entry:e})}async init(){this.store.empConfig.autoPages?await this.setAutoPage():(await this.setDefaultEntry(),this.setEntryByConfig())}async setAutoPage(){let e=this.store.empConfig.autoPages?.path||"pages",t=b.join(this.store.appSrc,e),s=b.join(t,"**","*.{ts,tsx,jsx,js}"),r=await Je([s],{windowsPathsNoEscape:!0});r=r.map(o=>o.replace(`${t}${b.sep}`,"")),r.map(o=>{let a=this.store.empConfig.entries[o]||{};this.setEntryItem(o,{...this.store.empConfig.html,...a},b.join(t,o))})}async setDefaultEntry(){let e=b.join(this.store.appSrc,this.store.empConfig.appEntry?this.store.empConfig.appEntry:"index.{ts,tsx,jsx,js}"),t=await Je([e],{windowsPathsNoEscape:!0});if(t[0]){let s=b.join(this.store.empConfig.appSrc,Object.keys(this.store.empConfig.entries).length>0&&this.store.empConfig.appEntry?this.store.empConfig.appEntry:"index");this.setEntryItem(s,this.store.empConfig.html,t[0])}}setEntryByConfig(){if(Object.keys(this.store.empConfig.entries).length>0)for(let[e,t]of Object.entries(this.store.empConfig.entries))this.setEntryItem(e,{...this.store.empConfig.html,...t})}toConfig(){for(let[e,t]of Object.entries(this.entriesConfig))this.setRspackHtmlPlugin(t.html,e),this.setRspackEntry(t.entry)}},_e=new pe});import Ve from"node:path";var le,Xe,qe=l(()=>{"use strict";Q();y();le=class{store;swcJsOptions={};swcTsOptions={};coreJs={version:"3",alias:"",path:""};async setup(e){this.store=e;let t=[this.files(),this.scripts(),this.rspackGenerator(),this.rspackParser()];await this.store.empConfig.lifeCycle.beforeModule(),await Promise.all(t),await this.store.empConfig.lifeCycle.afterModule()}rspackGenerator(){let e=this.store.isDev?"[path][name]-[local]-[hash:5]":"[local]-[hash:5]";this.store.chain.merge({module:{generator:{css:{localIdentName:e},"css/auto":{localIdentName:e},"css/module":{localIdentName:e}}}})}rspackParser(){this.store.chain.merge({module:{parser:{css:{namedExports:!1},"css/auto":{namedExports:!1},"css/module":{namedExports:!1}}}})}get isPolyfill(){return this.store.empConfig.build.polyfill}swcParser(e){switch(e){case"js":return{syntax:"ecmascript",jsx:!0,decorators:!0,decoratorsBeforeExport:!1};case"ts":return{syntax:"typescript",decorators:!0,tsx:!0,dynamicImport:!0}}}swcJsc(e){let{target:t,externalHelpers:s}=this.store.empConfig.build;return{parser:this.swcParser(e),transform:{},target:t,externalHelpers:s,preserveAllComments:!0}}get swcCoreVersion(){let[e,t]=this.coreJs.version.split(".");return`${e}.${t}`}swcOptions(e){let t={jsc:f(this.swcJsc(e),{...this.store.empConfig.build.swcConfig}),isModule:"unknown"};return this.isPolyfill&&(delete t.jsc.target,t.env={coreJs:this.swcCoreVersion,targets:this.store.empConfig.build.browserslist},this.store.empConfig.isESM||(t.env.mode=this.store.empConfig.build.polyfill),this.store.empConfig.build.polyfill==="usage"&&(t.env.shippedProposals=!0,t.env.include=this.store.empConfig.build.polyfillInclude)),t}swcInitOptions(){let{externalHelpers:e}=this.store.empConfig.build;e&&this.store.chain.resolve.alias.set("@swc/helpers",Ve.dirname(j.resolve("@swc/helpers/package.json"))),this.coreJs.path=j.resolve("core-js/package.json");let t=xe(this.coreJs.path);t&&(this.coreJs.version=t),this.coreJs.alias=Ve.dirname(this.coreJs.path),this.store.empConfig.build.polyfill&&(this.store.chain.resolve.alias.set("core-js",this.coreJs.alias),this.store.chain.module.rule("javascript").exclude.add(/core-js/),this.store.chain.module.rule("typescript").exclude.add(/core-js/)),this.swcTsOptions=this.swcOptions("ts"),this.swcJsOptions=this.swcOptions("js")}async scripts(){this.swcInitOptions();let e=!1,t=[];this.store.chain.merge({module:{parser:{javascript:{exportsPresence:"error",importExportsPresence:"error"}},rule:{mjs:{test:/\.m?js/,resolve:{fullySpecified:!1}},typescript:{test:/\.(ts|tsx)$/,exclude:t,sideEffects:e,use:{swc:{loader:"builtin:swc-loader",options:this.swcTsOptions}}},javascript:{test:/\.((m|c)?js|jsx)$/,exclude:t,sideEffects:e,use:{swc:{loader:"builtin:swc-loader",options:this.swcJsOptions}}}}}})}async files(){this.store.chain.merge({module:{rule:{svg:{test:/\.svg$/,type:"asset/resource"}}}}),this.store.chain.merge({module:{rule:{inline:{resourceQuery:/inline/,type:"asset/inline"}}}}),this.store.chain.merge({module:{rule:{image:{test:/\.(png|jpe?g|gif|webp|ico)$/i,type:"asset/resource"},fonts:{test:/\.(|otf|ttf|eot|woff|woff2)$/i,type:"asset/resource"},svga:{test:/\.(svga)$/i,type:"asset/resource"}}}})}},Xe=new le});import Ke from"fs";import{ModuleFederationPlugin as zt}from"@module-federation/enhanced/rspack";import k from"@rspack/core";var ce,Qe,Ye=l(()=>{"use strict";ce=class{store;async setup(e){this.store=e;let t=[this.define(),this.anylayze(),this.progress(),this.copy(),this.empShare(),this.minify()];await this.store.empConfig.lifeCycle.beforePlugin(),await Promise.all(t),await this.store.empConfig.lifeCycle.afterPlugin()}async anylayze(){if(!this.store.cliOptions.analyze)return;let{default:{BundleAnalyzerPlugin:e}}=await import("webpack-bundle-analyzer");this.store.chain.plugin("bundleAnalyzerPlugin").use(e,[{analyzerPort:this.store.empConfig.server.port,defaultSizes:"gzip",analyzerHost:this.store.getLanIp()||"127.0.0.1"}])}async define(){this.store.chain.plugin("definePlugin").use(k.DefinePlugin,[this.store.empConfig.define])}async copy(){let e=this.store.resolve("public");Ke.existsSync(e)&&Ke.readdirSync(e).length>0&&this.store.chain.plugin("copyRspackPlugin").use(k.CopyRspackPlugin,[{patterns:[{from:e,to:this.store.resolve(this.store.empConfig.build.outDir)}]}])}async progress(){this.store.empConfig.debug.progress&&this.store.chain.plugin("progressPlugin").use(k.ProgressPlugin,[{prefix:"EMP"}])}async empShare(){let{isEmpshare:e}=this.store.empConfig.empShareLib;if(!e)return;let t=zt;this.store.chain.plugin("empShare").use(t,[this.store.empConfig.empShareLib.pluginConfig])}minify(){this.store.chain.optimization.minimize(this.store.mode==="production"),this.store.chain.optimization.minimizer("minJs").use(k.SwcJsMinimizerRspackPlugin,[this.store.empConfig.build.minOptions]),this.store.chain.optimization.minimizer("minCss").use(k.SwcCssMinimizerRspackPlugin,[{}])}},Qe=new ce});var me,Ze,et=l(()=>{"use strict";He();Ue();We();qe();Ye();me=class{store;async setup(e){this.store=e;let t=[Ge.setup(this.store),Xe.setup(this.store),Qe.setup(this.store),_e.setup(this.store),Ne.setup(this.store)];await Promise.all(t),await this.store.empConfig.lifeCycle.beforeEmpPlugin(),await this.store.empConfig.plugins(),await this.store.empConfig.lifeCycle.afterEmpPlugin(),await this.store.empConfig.chain()}},Ze=new me});import It from"node:fs/promises";import w from"node:path";import{pathToFileURL as Gt}from"node:url";import Ht from"node:util";import Nt from"webpack-chain";var he,n,u=l(()=>{"use strict";v();Q();y();Ie();et();he=class{empPkg={dependencies:{},devDependencies:{},version:"2.0.0",name:""};pkg={dependencies:{},devDependencies:{},version:"0.0.0",name:""};root=process.cwd();empRoot=$e;empSource=w.resolve(this.empRoot,"dist");resolve=e=>w.isAbsolute(e)?e:w.resolve(this.root,e);empResolve=e=>w.resolve(this.empRoot,e);appSrc="";outDir="";publicDir="";resource={dir:"",key:"",cert:""};cacheDir="";mode="development";cliMode="dev";isDev=!0;cliOptions;chain;rsConfig;empOptions={};empConfig;vCompare=M;deepAssign=f;getLanIp=$;entries={};debug;async setup(e,t){await this.initVars(e,t),this.empConfig=ze,await this.empConfig.setup(this),this.debug={...this.empConfig.debug},this.initPaths(),this.chain=new Nt,await Ze.setup(this),this.setLogger(),this.toConfig(),this.logConfig()}async initVars(e,t){this.cliOptions=t||{},this.cliMode="prod",this.mode=e==="dev"?"development":"production",this.isDev=this.mode==="development",process.env.NODE_ENV=e==="dev"?"development":"production";let s=await K(this.empResolve("package.json")),r=await K(this.resolve("package.json"));this.empPkg={...this.empPkg,...s},this.pkg={...this.pkg,...r}}initPaths(){this.appSrc=this.resolve(this.empConfig.appSrc),this.outDir=this.resolve(this.empConfig.build.outDir),this.publicDir=this.resolve(this.empConfig.build.publicDir),this.cacheDir=this.resolve(this.empConfig.cacheDir),this.resource.dir=w.join(this.empRoot,"resource"),this.resource.cert=w.join(this.resource.dir,"emp.cert"),this.resource.key=w.join(this.resource.dir,"emp.key")}setLogger(){let e=this.cliMode==="dev"?"debug":"info";this.debug.loggerLevel&&(e=this.debug.loggerLevel),p.setup({pname:`EMP\u26A1${this.empPkg.version}${this.cliMode==="dev"?".DEV":""}`,logLevel:e})}merge(e){this.chain.merge(e)}importResolve(e,t){return ke(e,t)}importFileUrl(e){return Gt(e).toString()}toConfig(){this.rsConfig=this.chain.toConfig()}logConfig(){if(this.debug.showRsconfig)if(typeof this.debug.showRsconfig=="string"){let e=w.join(this.root,this.debug.showRsconfig);It.writeFile(e,JSON.stringify(this.rsConfig,null,2))}else{this.debug.clearLog=!1;let e={colors:!0,depth:null},t=typeof this.debug.showRsconfig=="object"?f(e,this.debug.showRsconfig):e;console.log(p.link("[Compile Config]")),console.log(Ht.inspect(this.rsConfig,t))}}get browserslistOptions(){return{default:["chrome >= 87","edge >= 88","firefox >= 78","safari >= 14"],h5:["iOS >= 9","Android >= 4.4","last 2 versions","> 0.2%","not dead"],node:["node >= 20"]}}},n=new he});import Ut from"node:fs";import C from"node:path";import g from"chalk";import{gzipSizeSync as Jt}from"gzip-size";function Qt(i,e){let t=[i,e],s=["File","Size","Gzipped"].reduce((r,o,a)=>{let m=t[a],d=o;return m&&(d=o.length<m?o+" ".repeat(m-o.length):o),`${r+d} `}," ");console.log(g.bold.blue(s))}async function tt(i){let e=i.toJson({all:!1,assets:!0,timings:!0}),s=e.assets.filter(c=>Xt(c.name)).map(Kt);s.sort((c,O)=>c.size-O.size);let r=Math.max(...s.map(c=>c.sizeLabel.length)),o=Math.max(...s.map(c=>(c.folder+C.sep+c.name).length));Qt(o,r);let a=0,m=0;s.forEach(c=>{let{sizeLabel:O}=c,{name:dt,folder:yt,gzipSizeLabel:bt}=c,ve=(yt+C.sep+dt).length,we=O.length;if(a+=c.size,m+=c.gzippedSize,we<r){let _=" ".repeat(r-we);O+=_}let Ce=g.gray(c.folder+C.sep)+Yt(c.name);if(ve<o){let _=" ".repeat(o-ve);Ce+=_}p.info(` ${Ce} ${g.gray(O)} ${bt}`)});let d=`${g.bold.blue("Total size:")} ${I(a)}`,P=`${g.bold.blue("Gzipped size:")} ${I(m)}`;p.info(`
|
|
8
|
+
`)};link=e=>h.hex("#3498db")(e);title=e=>{console.log(`${h.greenBright.bold(this.brandName)} ${h.yellowBright.underline(`${e}`)}
|
|
9
|
+
`)}},p=new q});import{ip as wt}from"address";import Ct from"chalk";import{gateway4sync as xt}from"default-gateway";import St from"fs-extra";function Se(){process.stdout.write(process.platform==="win32"?"\x1B[2J\x1B[0f":"\x1B[2J\x1B[3J\x1B[H")}function f(i,...e){for(let t of e)for(let s in t){let r=t[s],o=i[s];if(Object(r)==r&&Object(o)===o){i[s]=f(o,r);continue}i[s]=t[s]}return i}var M,xe,j,X,Ee,y=l(()=>{"use strict";M=()=>{let{int:i}=xt();return wt(i||"")||"127.0.0.1"},xe=i=>{try{let{version:e}=St.readJSONSync(i);return e}catch{return}};j=(i="",e="")=>{let t=i.replace("^","").split("."),s=e.replace("^","").split("."),r=Math.max(t.length,s.length),o=0;for(let a=0;a<r;a++){let m=t.length>a?t[a]:0,d=isNaN(Number(m))?m.charCodeAt():Number(m),P=s.length>a?s[a]:0,c=isNaN(Number(P))?P.charCodeAt():Number(P);if(d<c){o=-1;break}else if(d>c){o=1;break}}return o},X=i=>{i=i/1e3;let e=s=>Ct.bold(s);if(i<1)return`${i*1e3} ms`;if(i<10){let s=i>=.01?2:3;return`${e(i.toFixed(s))} s`}if(i<60)return`${e(i.toFixed(1))} s`;let t=i/60;return`${e(t.toFixed(2))} m`},Ee=i=>`data:text/javascript,${i}`});import{readFile as Et}from"node:fs/promises";import Oe from"node:module";import{dirname as Ot}from"node:path";import K from"node:path";import{fileURLToPath as Pt}from"node:url";var Pe,kt,Q,S,ke,$e,L=l(()=>{"use strict";Pe=Pt(import.meta.url),kt=Ot(Pe),Q=async i=>{try{let e=await Et(i);return JSON.parse(e)}catch(e){console.error(e)}},S=Oe.createRequire(import.meta.url),ke=(i,e)=>{let t=S;return e&&(t=Oe.createRequire(e)),t.resolve(i)},$e=K.resolve(kt,Pe).replace(`${K.sep}dist${K.sep}index.js`,"")});var T,Me=l(()=>{"use strict";u();T=class{externals={};externalAssets={js:[],css:[]};exp=/^([0-9a-zA-Z_\s]+)@(.*)/;config;importMap={imports:{}};isEmpshare=!1;async setup(){this.config=n.empConfig.empShare,this.isEmpshare=!!n.empConfig.empShare.name,n.empConfig.empShare.fastMode&&n.empConfig.empShareFastMode.setup(),this.config.shareLib&&this.setShareLib(),this.prepareEsm()}get useImportMap(){return this.config.useImportMap&&n.empConfig.isESM}get pluginConfig(){let e={...this.config};return delete e.shareLib,delete e.useImportMap,delete e.fastMode,{manifest:!1,dts:!1,...e}}prepareEsm(){if(n.empConfig.isESM){this.config.library={type:"module"};let e=this.config.remotes||{};for(let[t,s]of Object.entries(e))if(typeof s=="string"){let r=s.match(this.exp)||[];r.length>0&&(e[t]=r[2])}this.config.remotes=e}}async setShareLib(){let e=this.config,t=[];if(typeof e.shareLib=="object")for(let[s,r]of Object.entries(e.shareLib)){let o={};if(o.module=s,typeof r=="string"){let a=r.match(this.exp)||[];a.length>0?(o.global=a[1],o.entry=a[2],o.type="js",t.push(o),o={}):(o.global="",o.entry=r,o.type="js",t.push(o),o={})}else Array.isArray(r)?r.map(a=>{if(!a)return;if(a.split("?")[0].endsWith(".css"))o.entry=a,o.type="css";else{let d=a.match(this.exp)||[];d.length>0?(o.global=d[1],o.entry=d[2],o.type="js"):(o.global="",o.entry=a,o.type="js")}t.push(o),o={}}):typeof r=="object"&&r.entry&&(o.entry=r.entry,o.global=r.global,o.type=r.type,t.push(o),o={})}await Promise.all([this.setExternalAssets(t)])}async setExternalAssets(e=[]){if(e.length>0){let t=[];t=t.concat(e),t.map(s=>{s.type=s.type||"js",s.type==="js"&&s.module?(s.global?this.externals[s.module]=s.global:n.empConfig.isESM&&(this.useImportMap?(this.externals[s.module]=s.module,this.importMap.imports[s.module]=s.entry):this.externals[s.module]=s.entry),s.entry&&!n.empConfig.isESM&&this.externalAssets.js.push(s.entry)):s.type==="css"&&s.entry&&this.externalAssets.css.push(s.entry)})}}}});var D,je=l(()=>{"use strict";u();D=class{fastMode={runtimeHost:"",runtimeLib:"",externals:{},globalVal:"EmpShareLib",framework:"react"};externalMF={"@module-federation/runtime":"MFRuntime","@module-federation/sdk":"MFSDK"};externalReact={react:"React","react-dom":"ReactDOM","react-router-dom":"ReactRouterDOM"};externals={};getRuntimeLib(e){return`${e}/runtime${n.mode==="development"?".development":""}.umd.js`}setup(){this.fastMode=n.deepAssign(this.fastMode,n.empConfig.empShare.fastMode),this.injectLib(),this.setExternals()}injectLib(){let{runtimeHost:e,runtimeLib:t}=this.fastMode;if(e||t){let s=t||this.getRuntimeLib(e);n.empConfig.empShareLib.externalAssets.js.push(s)}}setExternals(){for(let[e,t]of Object.entries(this.externalMF))this.externals[e]=`${this.fastMode.globalVal}.${t}`;if(this.fastMode.framework==="react")for(let[e,t]of Object.entries(this.externalReact))this.externals[e]=`${this.fastMode.globalVal}.${t}`;Object.entries(this.fastMode.externals).length>0&&(this.externals=n.deepAssign(this.externals,this.fastMode.externals)),n.empConfig.empShareLib.externals=n.deepAssign(n.empConfig.empShareLib.externals,this.externals)}}});import $t from"net";import Mt from"os";async function R(i,e="localhost"){if(i!==jt&&(i<Le||i>Y))throw new Error(`Port number must lie between ${Le} and ${Y}`);let t=i,s=Lt(),r;e&&!s.has(e)?r=new Set([e]):r=s;let o=new Set(["EADDRINUSE","EACCES"]);for(;t<=Y;)try{return await Dt(t,r)}catch(a){if(!o.has(a.code))throw a;t+=1}throw new Error("No available ports found")}var Le,Y,jt,Lt,Tt,Dt,Z=l(()=>{"use strict";Le=1024,Y=65535,jt=443,Lt=()=>{let i=Mt.networkInterfaces(),e=new Set([void 0,"0.0.0.0"]);for(let t of Object.values(i))if(t)for(let s of t)e.add(s.address);return e},Tt=(i,e)=>new Promise((t,s)=>{let r=$t.createServer();r.unref(),r.on("error",s),r.listen(i,e,()=>{let{port:o}=r.address();r.close(()=>{t(o)})})}),Dt=async(i,e)=>{let t=new Set(["EADDRNOTAVAIL","EINVAL"]);for(let s of e)try{await Tt(i,s)}catch(r){if(!t.has(r.code))throw r}return i}});import Te from"url";import De from"chalk";var ee,O,te=l(()=>{"use strict";y();ee=class{imf={protocol:"",port:8e3,pathname:"/"};host="0.0.0.0";urls={lanUrlForConfig:"",lanUrlForTerminal:De.gray("unavailable"),localUrlForTerminal:"",localUrlForBrowser:""};setup(e){e.host&&(this.host=e.host),e.protocol&&(this.imf.protocol=e.protocol),e.pathname&&(this.imf.pathname=e.pathname),e.port&&(this.imf.port=e.port),this.setupUrls()}setupUrls(){let{host:e}=this,t=e==="0.0.0.0"||e==="::",s;if(t){s="localhost";try{this.urls.lanUrlForConfig=this.getLanIp(),this.urls.lanUrlForConfig&&(/^10[.]|^172[.](1[6-9]|2[0-9]|3[0-1])[.]|^192[.]168[.]/.test(this.urls.lanUrlForConfig)?this.urls.lanUrlForTerminal=this.prettyPrintUrl(this.urls.lanUrlForConfig):this.urls.lanUrlForConfig="")}catch{}}else s=e,this.urls.lanUrlForConfig=e,this.urls.lanUrlForTerminal=this.prettyPrintUrl(this.urls.lanUrlForConfig);this.urls.localUrlForTerminal=this.prettyPrintUrl(s),this.urls.localUrlForBrowser=this.formatUrl(s)}getLanIp=M;formatUrl(e){let{protocol:t,port:s,pathname:r}=this.imf;return Te.format({protocol:t,hostname:e,port:s,pathname:r})}prettyPrintUrl(e){let{protocol:t,port:s,pathname:r}=this.imf;return Te.format({protocol:t,hostname:e,port:De.bold(s),pathname:r})}},O=new ee});var se,F,ie=l(()=>{"use strict";Z();te();y();u();se=class{isADB=!1;isHttps=!1;get isHttpBase(){let e=n.empOptions.base||"";return e.indexOf("http://")>-1||e.indexOf("https://")>-1}async setup(){if(this.isADB=!!n.empOptions.autoDevBase&&n.mode==="development"&&!this.isHttpBase,!this.isADB)return;let{server:e,https:t}=n.empOptions.server||{};this.isHttps=e==="https"||typeof e=="object"&&e.type==="https"||t===!0;let s=O.getLanIp(),r=this.isHttps?"https":"http",o=n.empOptions.server?.port||8e3;o=await R(o,s),n.empOptions.base=`${r}://${s}:${o}/`,n.empOptions.server=f({port:o,client:{webSocketURL:`${this.isHttps?"wss":"ws"}://${s}:${o}/ws`}},n.empOptions.server)}},F=new se});import Ae from"html-webpack-plugin";var Re,A,Fe,B,Rt,z,re=l(()=>{"use strict";y();u();Re="HtmlImportMapPlugin",A=class{importMap;chunk;constructor(e,t){this.importMap=e,this.chunk=t}apply(e){e.hooks.compilation.tap(Re,t=>{Ae.getHooks(t).alterAssetTagGroups.tapAsync(Re,(s,r)=>{if(!s.plugin.userOptions.chunks?.includes(this.chunk))return r(null,s);s.headTags.push({tagName:"script",attributes:{type:"importmap"},innerHTML:`${JSON.stringify(this.importMap,null,2)}`,voidTag:!1,meta:{plugin:void 0}}),r(null,s)})})}},Fe="HtmlEmpShareLibPlugin",B=class{chunk;files;constructor(e,t){this.files=f({js:[],css:[]},e),this.chunk=t}apply(e){e.hooks.compilation.tap(Fe,t=>{let s=this.files;Ae.getHooks(t).alterAssetTagGroups.tapAsync(Fe,(r,o)=>{if(!r.plugin.userOptions.chunks?.includes(this.chunk))return o(null,r);s.js.map(a=>{r.headTags.push({tagName:"script",attributes:{src:a},voidTag:!1,meta:{plugin:void 0}})}),s.css.map(a=>{r.headTags.push({tagName:"link",attributes:{rel:"stylesheet",href:a},voidTag:!1,meta:{plugin:void 0}})}),o(null,r)})})}},Rt=()=>{let i=[`import 'core-js/${n.empConfig.build.coreJsFeatures}'`].join(`
|
|
10
|
+
`);return Ee(i)},z=class{constructor(){}apply(e){let{webpack:t}=e;new t.EntryPlugin(e.context,Rt(),{name:void 0}).apply(e)}}});var I,Be=l(()=>{"use strict";u();ie();re();I=class{op={};constructor(e={}){this.op=e}async afterGetEmpOptions(){await F.setup(),this.op.afterGetEmpOptions&&await this.op.afterGetEmpOptions()}async beforePlugin(){n.empConfig.build.polyfill==="entry"&&n.chain.plugin("empPolyfill").use(z),this.op.beforePlugin&&await this.op.beforePlugin()}async afterPlugin(){this.op.afterPlugin&&await this.op.afterPlugin()}async beforeModule(){this.op.beforeModule&&await this.op.beforeModule()}async afterModule(){this.op.afterModule&&await this.op.afterModule()}async beforeEmpPlugin(){this.op.beforeEmpPlugin&&await this.op.beforeEmpPlugin()}async afterEmpPlugin(){this.op.afterEmpPlugin&&await this.op.afterEmpPlugin()}async beforeBuild(){this.op.beforeBuild&&await this.op.beforeBuild()}async afterBulid(){this.op.afterBulid&&await this.op.afterBulid()}async beforeDevServe(){this.op.beforeDevServe&&await this.op.beforeDevServe()}async afterDevServe(){this.op.afterDevServe&&await this.op.afterDevServe()}async beforeServe(){this.op.beforeServe&&await this.op.beforeServe()}async afterServe(){this.op.afterServe&&await this.op.afterServe()}}});import Ft from"node:fs";var oe,ze,Ie=l(()=>{"use strict";y();Me();je();Be();oe=class{store;appSrc="src";appEntry="";base="";target=[];assign(e,t){return t=t||{},f(e,t)}empShareFastMode=new D;empShareLib=new T;isESM=!1;async autoDevSet(){this.store.mode==="development"&&this.store.empOptions.autoDevBase}checkIsESM(e){return["es3","es5"].indexOf(e)===-1}lifeCycle;async setup(e){this.store=e,await this.syncEmpOptions(),this.lifeCycle=new I(this.store.empOptions.lifeCycle),await this.lifeCycle.afterGetEmpOptions(),this.isESM=this.checkIsESM(this.build.target),this.store.empOptions.target?(this.target=this.store.empOptions.target,Array.isArray(this.target)&&!this.target.includes(this.build.target)&&this.target.push(this.build.target)):this.target=["web",this.build.target];let{appSrc:t,base:s,appEntry:r}=this.store.empOptions;t&&(this.appSrc=t),s&&(this.base=s),r&&(this.appEntry=r),this.store.empConfig.empShare&&await this.empShareLib.setup()}async chain(){this.store.empOptions.chain&&await this.store.empOptions.chain(this.store.chain)}async plugins(){let e=[];this.store.empOptions.plugins&&Array.isArray(this.store.empOptions.plugins)&&this.store.empOptions.plugins.length>0&&(this.store.empOptions.plugins.map(t=>{e.push(t.rsConfig(this.store))}),await Promise.all(e))}get debug(){return this.assign({loggerLevel:"info",clearLog:!0,progress:!0,showRsconfig:!1,showPerformance:!1,rspackCache:!0,infrastructureLogging:{appendOnly:!0,level:"warn"},newTreeshaking:this.store.empConfig.isESM},this.store.empOptions.debug)}get build(){let e=this.store.empOptions.build?.staticDir?`${this.store.empOptions.build?.staticDir}/`:"";return this.assign({outDir:"dist",staticDir:e,assetsDir:"assets",publicDir:"public",chunkIds:this.store.isDev?"named":"deterministic",moduleIds:this.store.isDev?"named":"deterministic",sourcemap:!0,minify:!this.store.isDev,minOptions:{},target:"es5",polyfill:!1,polyfillInclude:["es.object.values","es.object.entries","es.array.flat"],coreJsFeatures:"stable",externalHelpers:!1,browserslist:this.store.browserslistOptions.default,swcConfig:{}},{...this.store.empOptions.build,staticDir:e})}get html(){let e=this.store.empOptions.html?.template?{}:{charset:{charset:"utf-8"},"http-equiv":{"http-equiv":"X-UA-Compatible",content:"IE=edge"},viewport:{name:"viewport",content:"width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0"},keywords:{keywords:""},description:{description:""}};return this.assign({lang:"zh-CN",title:"EMP",inject:"body",minify:!this.store.isDev,scriptLoading:this.isESM?"module":"defer",meta:e,files:{css:[],js:[]},tags:{headTags:[],bodyTags:[]}},this.store.empOptions.html)}get entries(){return this.store.empOptions.entries?this.store.empOptions.entries:{}}get server(){let e={host:"0.0.0.0",port:8e3,open:process.platform==="darwin",hot:!0,watchFiles:["src/**/*.html"],static:[{directory:this.store.publicDir,watch:this.store.isDev}],allowedHosts:["all"],historyApiFallback:!0,headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, PATCH, OPTIONS","Access-Control-Allow-Headers":"X-Requested-With, content-type, Authorization"}};return this.assign(e,this.store.empOptions.server)}get empShare(){return this.assign({name:"",filename:"emp.js",shared:{}},this.store.empOptions.empShare)}get css(){return this.assign({sass:"embedded"},this.store.empOptions.css)}get output(){let e=(this.store.isDev,".[contenthash:8]"),t=this.store.isDev?"":".[contenthash:8]",{assetsDir:s,staticDir:r}=this.store.empConfig.build,o={publicPath:this.store.empConfig.base?this.store.empConfig.base:"auto",crossOriginLoading:"anonymous",filename:`${r}js/[name]${e}.js`,cssFilename:`${r}css/[name]${t}.css`,cssChunkFilename:`${r}css/[name]${t}.css`,assetModuleFilename:`${r}${s}/[name]${e}[ext][query]`,path:this.store.outDir,clean:!0};return this.store.isDev&&this.store.empConfig.empShare.dts!==!1&&(o.clean=!1),this.assign(o,this.store.empOptions.output)}get define(){let e={mode:this.store.mode,env:this.store.cliOptions.env};return this.store.empOptions.define&&(e={...e,...this.store.empOptions.define}),this.setDefine(e)}setDefine(e){let t=this.store.empOptions.defineFix?this.store.empOptions.defineFix:this.isESM?"esm":"cjs",s={};return Object.keys(e).map(r=>{(t==="all"||t==="esm")&&(s[`import.meta.env.${r}`]=JSON.stringify(e[r])),(t==="all"||t==="cjs")&&(s[`process.env.${r}`]=JSON.stringify(e[r])),s[`${r}`]=JSON.stringify(e[r])}),s}get externals(){return this.assign(this.empShareLib.externals,this.store.empOptions.externals)}get resolve(){return f({alias:{src:this.store.resolve("src"),"@":this.store.resolve("src")},extensions:["...",".js",".jsx",".mjs",".ts",".tsx",".css",".less",".scss",".sass",".json",".wasm",".vue",".svg",".svga"]},this.store.empOptions.resolve)}async syncEmpOptions(){let e=this.store.resolve("emp-config.js");if(!Ft.existsSync(e))return;let{default:t}=await import(this.store.importFileUrl(e));typeof t=="function"?this.store.empOptions=await t(this.store):this.store.empOptions=t||{}}get moduleTransformRule(){let{moduleTransform:e}=this.store.empOptions,t=this.assign({defaultExclude:!1},e),s={and:[],not:[]};return t.defaultExclude===!0&&s.and.push(/(node_modules|bower_components)/),t?.exclude&&(s.and=s.and.concat(t.exclude)),e?.include&&(s.not=t.include),s}get cacheDir(){return this.store.empOptions.cacheDir?this.store.empOptions.cacheDir:"node_modules/.emp-cache"}get ignoreWarnings(){return this.store.empOptions.ignoreWarnings?this.store.empOptions.ignoreWarnings:[/Conflicting order/]}get autoPages(){let e;return this.store.empOptions.autoPages&&(e=typeof this.store.empOptions.autoPages=="boolean"?{}:this.store.empOptions.autoPages,e=this.assign({path:"pages"},e)),e}},ze=new oe});import At from"fs-extra";var ne,Ne,Ge=l(()=>{"use strict";ne=class{store;async setup(e){this.store=e;let t=[this.common(),this.stats(),this.devServer(),this.optimization(),this.checkTsconfig()];await Promise.all(t)}async common(){this.store.merge({node:{global:!0},experiments:{rspackFuture:{newTreeshaking:this.store.empConfig.debug.newTreeshaking},outputModule:this.store.empConfig.isESM,topLevelAwait:!0},target:this.store.empConfig.target,infrastructureLogging:this.store.empConfig.debug.infrastructureLogging,context:this.store.root,mode:this.store.mode,cache:this.store.empConfig.debug.rspackCache,devtool:this.store.empConfig.build.sourcemap?"source-map":!1,builtins:{},output:this.store.empConfig.output,resolve:this.store.empConfig.resolve,externals:this.store.empConfig.externals,ignoreWarnings:this.store.empConfig.ignoreWarnings})}async checkTsconfig(){let e=this.store.resolve("tsconfig.json");if(await At.exists(e)){let s={tsConfigPath:e};this.store.merge({resolve:s})}}async stats(){this.store.merge({stats:{colors:!0,all:!1,assets:!1,chunks:!1,timings:!0,version:!0}})}async devServer(){this.store.merge({devServer:this.store.empConfig.server})}async optimization(){let e={moduleIds:this.store.empConfig.build.moduleIds,chunkIds:this.store.empConfig.build.chunkIds,minimize:this.store.empConfig.build.minify,splitChunks:{chunks:"async",cacheGroups:{}}};this.store.empConfig.build.polyfill&&(e.splitChunks.cacheGroups={}),this.store.chain.merge({optimization:e})}},Ne=new ne});var ae,He,Ue=l(()=>{"use strict";L();ae=class{store;async setup(e){this.store=e;let t=[this.sass(),this.less(),this.css()];await Promise.all(t)}async sass(){let e={};this.store.empConfig.css?.sass==="embedded"&&(e.implementation=S.resolve("sass-embedded"));let t={loader:S.resolve("sass-loader"),options:e};this.store.chain.merge({module:{rule:{sass:{test:/\.(sass|scss)$/,use:{sassLoader:t},type:"css/auto"}}}})}async less(){let e={loader:this.store.importResolve("less-loader"),options:{lessOptions:{javascriptEnabled:!0}}};this.store.chain.merge({module:{rule:{less:{test:/\.less$/,use:{lessLoader:e},type:"css/auto"}}}})}async css(){this.store.chain.merge({module:{rule:{css:{test:/\.css$/,use:{},type:"css/auto"}}}})}},He=new ae});import b from"node:path";import{glob as Je}from"glob";import Bt from"html-webpack-plugin";var pe,_e,We=l(()=>{"use strict";y();re();pe=class{store;entriesConfig={};async setup(e){this.store=e,await this.init(),this.toConfig()}setHtmlConfig(e,t){return e.template=this.setTemplate(e.template),e.favicon=this.setFavicion(e.favicon),e.chunks=t,e.filename=`${t[0]}.html`,this.store.empConfig.base&&(e.publicPath=this.store.empConfig.base),e.tags=e.tags||{},e}setChunk(e){return e.replace(b.extname(e),"").replace(`${this.store.empConfig.appSrc}${b.sep}`,"")}setTemplate(e){return e?this.store.resolve(e):this.store.empResolve(b.join("template","index.html"))}setFavicion(e){return e?this.store.resolve(e):this.store.empResolve(b.join("template","favicon.ico"))}setEntryItem(e,t,s){s=s||this.store.resolve(b.join(this.store.empConfig.appSrc,e));let r=this.setChunk(e),o=[s];this.entriesConfig[r]={entry:{[r]:o},html:this.setHtmlConfig(t,[r])},this.store.entries[r]=o}setRspackHtmlPlugin(e,t){this.store.chain.plugin(`html-plugin-${t}`).use(Bt,[e]),this.store.empConfig.empShareLib&&(e.files=f(e.files,this.store.empConfig.empShareLib.externalAssets)),this.store.chain.plugin(`html-plugin-empShare-${t}`).use(B,[e.files,t]),this.store.empConfig.empShareLib.useImportMap&&this.store.chain.plugin(`html-plugin-import-map-${t}`).use(A,[this.store.empConfig.empShareLib.importMap,t])}setRspackEntry(e){this.store.merge({entry:e})}async init(){this.store.empConfig.autoPages?await this.setAutoPage():(await this.setDefaultEntry(),this.setEntryByConfig())}async setAutoPage(){let e=this.store.empConfig.autoPages?.path||"pages",t=b.join(this.store.appSrc,e),s=b.join(t,"**","*.{ts,tsx,jsx,js}"),r=await Je([s],{windowsPathsNoEscape:!0});r=r.map(o=>o.replace(`${t}${b.sep}`,"")),r.map(o=>{let a=this.store.empConfig.entries[o]||{};this.setEntryItem(o,{...this.store.empConfig.html,...a},b.join(t,o))})}async setDefaultEntry(){let e=b.join(this.store.appSrc,this.store.empConfig.appEntry?this.store.empConfig.appEntry:"index.{ts,tsx,jsx,js}"),t=await Je([e],{windowsPathsNoEscape:!0});if(t[0]){let s=b.join(this.store.empConfig.appSrc,Object.keys(this.store.empConfig.entries).length>0&&this.store.empConfig.appEntry?this.store.empConfig.appEntry:"index");this.setEntryItem(s,this.store.empConfig.html,t[0])}}setEntryByConfig(){if(Object.keys(this.store.empConfig.entries).length>0)for(let[e,t]of Object.entries(this.store.empConfig.entries))this.setEntryItem(e,{...this.store.empConfig.html,...t})}toConfig(){for(let[e,t]of Object.entries(this.entriesConfig))this.setRspackHtmlPlugin(t.html,e),this.setRspackEntry(t.entry)}},_e=new pe});import Ve from"node:path";var le,qe,Xe=l(()=>{"use strict";L();y();le=class{store;swcJsOptions={};swcTsOptions={};coreJs={version:"3",alias:"",path:""};async setup(e){this.store=e;let t=[this.files(),this.scripts(),this.rspackGenerator(),this.rspackParser()];await this.store.empConfig.lifeCycle.beforeModule(),await Promise.all(t),await this.store.empConfig.lifeCycle.afterModule()}rspackGenerator(){let e=this.store.isDev?"[path][name]-[local]-[hash:5]":"[local]-[hash:5]";this.store.chain.merge({module:{generator:{css:{localIdentName:e},"css/auto":{localIdentName:e},"css/module":{localIdentName:e}}}})}rspackParser(){this.store.chain.merge({module:{parser:{css:{namedExports:!1},"css/auto":{namedExports:!1},"css/module":{namedExports:!1}}}})}get isPolyfill(){return this.store.empConfig.build.polyfill}swcParser(e){switch(e){case"js":return{syntax:"ecmascript",jsx:!0,decorators:!0,decoratorsBeforeExport:!1};case"ts":return{syntax:"typescript",decorators:!0,tsx:!0,dynamicImport:!0}}}swcJsc(e){let{target:t,externalHelpers:s}=this.store.empConfig.build;return{parser:this.swcParser(e),transform:{},target:t,externalHelpers:s,preserveAllComments:!0}}get swcCoreVersion(){let[e,t]=this.coreJs.version.split(".");return`${e}.${t}`}swcOptions(e){let t={jsc:f(this.swcJsc(e),{...this.store.empConfig.build.swcConfig}),isModule:"unknown"};return this.isPolyfill&&(delete t.jsc.target,t.env={coreJs:this.swcCoreVersion,targets:this.store.empConfig.build.browserslist},this.store.empConfig.isESM||(t.env.mode=this.store.empConfig.build.polyfill),this.store.empConfig.build.polyfill==="usage"&&(t.env.shippedProposals=!0,t.env.include=this.store.empConfig.build.polyfillInclude)),t}swcInitOptions(){let{externalHelpers:e}=this.store.empConfig.build;e&&this.store.chain.resolve.alias.set("@swc/helpers",Ve.dirname(S.resolve("@swc/helpers/package.json"))),this.coreJs.path=S.resolve("core-js/package.json");let t=xe(this.coreJs.path);t&&(this.coreJs.version=t),this.coreJs.alias=Ve.dirname(this.coreJs.path),this.store.empConfig.build.polyfill&&(this.store.chain.resolve.alias.set("core-js",this.coreJs.alias),this.store.chain.module.rule("javascript").exclude.add(/core-js/),this.store.chain.module.rule("typescript").exclude.add(/core-js/)),this.swcTsOptions=this.swcOptions("ts"),this.swcJsOptions=this.swcOptions("js")}async scripts(){this.swcInitOptions();let e=!1,t=[];this.store.chain.merge({module:{parser:{javascript:{exportsPresence:"error",importExportsPresence:"error"}},rule:{mjs:{test:/\.m?js/,resolve:{fullySpecified:!1}},typescript:{test:/\.(ts|tsx)$/,exclude:t,sideEffects:e,use:{swc:{loader:"builtin:swc-loader",options:this.swcTsOptions}}},javascript:{test:/\.((m|c)?js|jsx)$/,exclude:t,sideEffects:e,use:{swc:{loader:"builtin:swc-loader",options:this.swcJsOptions}}}}}})}async files(){this.store.chain.merge({module:{rule:{svg:{test:/\.svg$/,type:"asset/resource"}}}}),this.store.chain.merge({module:{rule:{inline:{resourceQuery:/inline/,type:"asset/inline"}}}}),this.store.chain.merge({module:{rule:{image:{test:/\.(png|jpe?g|gif|webp|ico)$/i,type:"asset/resource"},fonts:{test:/\.(|otf|ttf|eot|woff|woff2)$/i,type:"asset/resource"},svga:{test:/\.(svga)$/i,type:"asset/resource"}}}})}},qe=new le});import Ke from"fs";import{ModuleFederationPlugin as zt}from"@module-federation/enhanced/rspack";import $ from"@rspack/core";var ce,Qe,Ye=l(()=>{"use strict";ce=class{store;async setup(e){this.store=e;let t=[this.define(),this.anylayze(),this.progress(),this.copy(),this.empShare(),this.minify()];await this.store.empConfig.lifeCycle.beforePlugin(),await Promise.all(t),await this.store.empConfig.lifeCycle.afterPlugin()}async anylayze(){if(!this.store.cliOptions.analyze)return;let{default:{BundleAnalyzerPlugin:e}}=await import("webpack-bundle-analyzer");this.store.chain.plugin("bundleAnalyzerPlugin").use(e,[{analyzerPort:this.store.empConfig.server.port,defaultSizes:"gzip",analyzerHost:this.store.getLanIp()||"127.0.0.1"}])}async define(){this.store.chain.plugin("definePlugin").use($.DefinePlugin,[this.store.empConfig.define])}async copy(){let e=this.store.resolve("public");Ke.existsSync(e)&&Ke.readdirSync(e).length>0&&this.store.chain.plugin("copyRspackPlugin").use($.CopyRspackPlugin,[{patterns:[{from:e,to:this.store.resolve(this.store.empConfig.build.outDir)}]}])}async progress(){this.store.empConfig.debug.progress&&this.store.chain.plugin("progressPlugin").use($.ProgressPlugin,[{prefix:"EMP"}])}async empShare(){let{isEmpshare:e}=this.store.empConfig.empShareLib;if(!e)return;let t=zt;this.store.chain.plugin("empShare").use(t,[this.store.empConfig.empShareLib.pluginConfig])}minify(){this.store.chain.optimization.minimize(this.store.mode==="production"),this.store.chain.optimization.minimizer("minJs").use($.SwcJsMinimizerRspackPlugin,[this.store.empConfig.build.minOptions]),this.store.chain.optimization.minimizer("minCss").use($.SwcCssMinimizerRspackPlugin,[{}])}},Qe=new ce});var me,Ze,et=l(()=>{"use strict";Ge();Ue();We();Xe();Ye();me=class{store;async setup(e){this.store=e;let t=[Ne.setup(this.store),qe.setup(this.store),Qe.setup(this.store),_e.setup(this.store),He.setup(this.store)];await Promise.all(t),await this.store.empConfig.lifeCycle.beforeEmpPlugin(),await this.store.empConfig.plugins(),await this.store.empConfig.lifeCycle.afterEmpPlugin(),await this.store.empConfig.chain()}},Ze=new me});import It from"node:fs/promises";import w from"node:path";import{pathToFileURL as Nt}from"node:url";import Gt from"node:util";import Ht from"webpack-chain";var he,n,u=l(()=>{"use strict";v();L();y();Ie();et();he=class{empPkg={dependencies:{},devDependencies:{},version:"2.0.0",name:""};pkg={dependencies:{},devDependencies:{},version:"0.0.0",name:""};root=process.cwd();empRoot=$e;empSource=w.resolve(this.empRoot,"dist");resolve=e=>w.isAbsolute(e)?e:w.resolve(this.root,e);empResolve=e=>w.resolve(this.empRoot,e);appSrc="";outDir="";publicDir="";resource={dir:"",key:"",cert:""};cacheDir="";mode="development";cliMode="dev";isDev=!0;cliOptions;chain;rsConfig;empOptions={};empConfig;vCompare=j;deepAssign=f;getLanIp=M;entries={};debug;async setup(e,t){await this.initVars(e,t),this.empConfig=ze,await this.empConfig.setup(this),this.debug={...this.empConfig.debug},this.initPaths(),this.chain=new Ht,await Ze.setup(this),this.setLogger(),this.toConfig(),this.logConfig()}async initVars(e,t){this.cliOptions=t||{},this.cliMode="prod",this.mode=e==="dev"?"development":"production",this.isDev=this.mode==="development",process.env.NODE_ENV=e==="dev"?"development":"production";let s=await Q(this.empResolve("package.json")),r=await Q(this.resolve("package.json"));this.empPkg={...this.empPkg,...s},this.pkg={...this.pkg,...r}}initPaths(){this.appSrc=this.resolve(this.empConfig.appSrc),this.outDir=this.resolve(this.empConfig.build.outDir),this.publicDir=this.resolve(this.empConfig.build.publicDir),this.cacheDir=this.resolve(this.empConfig.cacheDir),this.resource.dir=w.join(this.empRoot,"resource"),this.resource.cert=w.join(this.resource.dir,"emp.cert"),this.resource.key=w.join(this.resource.dir,"emp.key")}setLogger(){let e=this.cliMode==="dev"?"debug":"info";this.debug.loggerLevel&&(e=this.debug.loggerLevel),p.setup({pname:`EMP\u26A1${this.empPkg.version}${this.cliMode==="dev"?".DEV":""}`,logLevel:e})}merge(e){this.chain.merge(e)}importResolve(e,t){return ke(e,t)}importFileUrl(e){return Nt(e).toString()}toConfig(){this.rsConfig=this.chain.toConfig()}logConfig(){if(this.debug.showRsconfig)if(typeof this.debug.showRsconfig=="string"){let e=w.join(this.root,this.debug.showRsconfig);It.writeFile(e,JSON.stringify(this.rsConfig,null,2))}else{this.debug.clearLog=!1;let e={colors:!0,depth:null},t=typeof this.debug.showRsconfig=="object"?f(e,this.debug.showRsconfig):e;console.log(p.link("[Compile Config]")),console.log(Gt.inspect(this.rsConfig,t))}}get browserslistOptions(){return{default:["chrome >= 87","edge >= 88","firefox >= 78","safari >= 14"],h5:["iOS >= 9","Android >= 4.4","last 2 versions","> 0.2%","not dead"],node:["node >= 20"]}}},n=new he});import Ut from"node:fs";import C from"node:path";import g from"chalk";import{gzipSizeSync as Jt}from"gzip-size";function Qt(i,e){let t=[i,e],s=["File","Size","Gzipped"].reduce((r,o,a)=>{let m=t[a],d=o;return m&&(d=o.length<m?o+" ".repeat(m-o.length):o),`${r+d} `}," ");console.log(g.bold.blue(s))}async function tt(i){let e=i.toJson({all:!1,assets:!0,timings:!0}),s=e.assets.filter(c=>qt(c.name)).map(Kt);s.sort((c,k)=>c.size-k.size);let r=Math.max(...s.map(c=>c.sizeLabel.length)),o=Math.max(...s.map(c=>(c.folder+C.sep+c.name).length));Qt(o,r);let a=0,m=0;s.forEach(c=>{let{sizeLabel:k}=c,{name:dt,folder:yt,gzipSizeLabel:bt}=c,ve=(yt+C.sep+dt).length,we=k.length;if(a+=c.size,m+=c.gzippedSize,we<r){let W=" ".repeat(r-we);k+=W}let Ce=g.gray(c.folder+C.sep)+Yt(c.name);if(ve<o){let W=" ".repeat(o-ve);Ce+=W}p.info(` ${Ce} ${g.gray(k)} ${bt}`)});let d=`${g.bold.blue("Total size:")} ${N(a)}`,P=`${g.bold.blue("Gzipped size:")} ${N(m)}`;p.info(`
|
|
11
11
|
${d}
|
|
12
12
|
${P}
|
|
13
13
|
`),p.info(`${g.greenBright("\u2713")} Ready in ${X(Number(e.time))}
|
|
14
|
-
`)}function G(i=0){p.info(`${g.greenBright("\u2713")} Ready in ${X(Number(i))}`)}var _t,Wt,Vt,Xt,
|
|
15
|
-
`)),this.sf.isOpenBrower&&rt(this.sf.url)}async setup(e,t){await n.setup(e,t),n.debug.clearLog&&Se(),p.title(`${e}`),await this.adaptServer(),await this.run(),this.afterRun()}async run(){}afterRun(){process.on("SIGINT",function(){process.exit()})}get isHttps(){let{server:e,https:t}=n.empConfig.server||{};return e==="https"||typeof e=="object"&&e.type==="https"||t===!0}getcert(){return Promise.all([nt.readFile(n.resource.key),nt.readFile(n.resource.cert)])}async serverPort(){if(
|
|
14
|
+
`)}function G(i=0){p.info(`${g.greenBright("\u2713")} Ready in ${X(Number(i))}`)}var _t,Wt,Vt,qt,Xt,Kt,N,Yt,H=l(()=>{"use strict";u();v();y();_t=/\.html$/,Wt=/\.(?:js|mjs|cjs|jsx)$/,Vt=/\.css$/,qt=i=>!/\.map$/.test(i)&&!/\.LICENSE\.txt$/.test(i),Xt=i=>i>300*1e3?g.red:i>100*1e3?g.yellow:g.white,Kt=i=>{let e=i.name.split("?")[0],t=N(i.size),s=C.basename(e),r=C.join(C.basename(n.empConfig.build.outDir),C.dirname(e)),o=Ut.readFileSync(C.join(n.empConfig.build.outDir,e)),a=o.length,m=Jt(o),d=Xt(m)(N(m));return{size:a,folder:r,name:s,gzippedSize:m,sizeLabel:t,gzipSizeLabel:d}};N=i=>{let e=i/1e3;return`${e.toFixed(e<1?2:1)} kB`},Yt=i=>Wt.test(i)?g.yellowBright(i):Vt.test(i)?g.greenBright(i):_t.test(i)?g.blueBright(i):g.magenta(i)});import{exec as Zt}from"node:child_process";import{promisify as es}from"node:util";var it,st,ts,ss,rt,ot=l(()=>{"use strict";u();v();it=es(Zt),st=["Google Chrome Canary","Google Chrome Dev","Google Chrome Beta","Google Chrome","Microsoft Edge","Brave Browser","Vivaldi","Chromium"],ts=async()=>{let i=process.env.BROWSER;if(!i||!st.includes(i)){let{stdout:e}=await it("ps cax");i=st.find(t=>e.includes(t))}return i},ss=async i=>{if(process.platform==="darwin")try{let t=await ts();if(t){let s=`osascript openChrome.applescript "${encodeURI(i)}" "${t}"`;return await it(s,{cwd:n.resource.dir}),!0}}catch(t){p.debug(t)}try{let{default:t}=await import("open");return await t(i),!0}catch(t){return p.error("Failed to open start URL."),p.error(t),!1}},rt=ss});import nt from"node:fs/promises";import U from"chalk";var x,J=l(()=>{"use strict";Z();te();v();ot();y();u();ie();x=class{sf={protocol:"http",host:"0.0.0.0",port:8e3,publicPath:"",publicHasHttp:!1,isOpenBrower:!1,url:"",urls:{localUrlForBrowser:"",localUrlForTerminal:"",lanUrlForTerminal:"",lanUrlForConfig:""}};async adaptServer(){this.sf.publicPath=n.rsConfig.output?.publicPath==="auto"?"/":n.rsConfig.output?.publicPath||"/",this.sf.isOpenBrower=!!n.empConfig.server.open,this.sf.protocol=this.isHttps?"https":"http",this.sf.host=n.empConfig.server.host?n.empConfig.server.host:this.sf.host,this.sf.port=n.empConfig.server.port,await this.serverPort(),O.setup(this.sf),this.sf.publicPath&&(this.sf.publicPath.indexOf("http://")>-1||this.sf.publicPath.indexOf("https://")>-1)?(this.sf.url=this.sf.publicPath,this.sf.publicHasHttp=!0,this.sf.urls.localUrlForTerminal=O.prettyPrintUrl("localhost")):(this.sf.urls=O.urls,this.sf.url=this.sf.urls.localUrlForBrowser)}startOpen(){let{urls:e}=this.sf;this.sf.publicHasHttp?(p.info(`${U.greenBright("\u279C")} Local: ${p.link(e.localUrlForTerminal)}`),p.info(`${U.greenBright("\u279C")} Network: ${p.link(this.sf.publicPath)}`)):(p.info(`${U.greenBright("\u279C")} Local: ${p.link(e.localUrlForTerminal)}`),p.info(`${U.greenBright("\u279C")} Network: ${p.link(e.lanUrlForTerminal)}
|
|
15
|
+
`)),this.sf.isOpenBrower&&rt(this.sf.url)}async setup(e,t){await n.setup(e,t),n.debug.clearLog&&Se(),p.title(`${e}`),await this.adaptServer(),await this.run(),this.afterRun()}async run(){}afterRun(){process.on("SIGINT",function(){process.exit()})}get isHttps(){let{server:e,https:t}=n.empConfig.server||{};return e==="https"||typeof e=="object"&&e.type==="https"||t===!0}getcert(){return Promise.all([nt.readFile(n.resource.key),nt.readFile(n.resource.cert)])}async serverPort(){if(F.isADB)return;let{port:e,host:t}=this.sf,s=await R(e,t);s!==e&&(this.sf.port=s,n.rsConfig.devServer?.port&&(n.rsConfig.devServer.port=s))}}});var at={};V(at,{default:()=>os});import{rspack as is}from"@rspack/core";import{RspackDevServer as rs}from"@rspack/dev-server";var fe,os,pt=l(()=>{"use strict";H();v();y();J();u();fe=class extends x{get rspackDevConfig(){return f(n.rsConfig,{stats:{all:!1,colors:!0,assets:!1,chunks:!1,entrypoints:!1,timings:!1,version:!1,errors:!0,warnings:!0},devServer:{open:!1,setupExitSignals:!0}})}async devServerConfig(){let e=Object.assign({},n.rsConfig.devServer);if(this.isHttps&&(e.https===!0&&delete e.https,!e.server)){let[t,s]=await this.getcert();e.server={type:"https",options:{key:t,cert:s}}}return e}async run(){let e=is(this.rspackDevConfig);if(!n.rsConfig.devServer){p.error("devServer is not defined in config");return}let t=await this.devServerConfig(),s=new rs(t,e);this.startOpen(),n.empConfig.lifeCycle.beforeDevServe&&await n.empConfig.lifeCycle.beforeDevServe(),await s.start();let r=o=>{let a=o?.toJson({all:!1,colors:!1,assets:!1,chunks:!1,timings:!0});G(a.time)};n.debug.showPerformance&&e.hooks.afterDone.tap("done",r),s.middleware?.waitUntilValid(o=>{n.debug.showPerformance||r(o),n.empConfig.lifeCycle.afterDevServe&&n.empConfig.lifeCycle.afterDevServe()})}},os=new fe});var lt={};V(lt,{default:()=>as});import{rspack as ns}from"@rspack/core";var ue,as,ct=l(()=>{"use strict";H();v();J();u();ue=class extends x{async run(){n.empConfig.lifeCycle.beforeBuild&&await n.empConfig.lifeCycle.beforeBuild(),ns(n.rsConfig,async(e,t)=>{if(e!==null){p.error(e.stack||e),e.message&&p.error(e.message);return}if(!t){p.red("Stats is Undefined.");return}t.hasErrors()&&(p.error(t.toString({colors:!0,children:!0})),p.red("Failed to compile."),process.exit(1)),t.hasWarnings()&&(p.yellow("Compiled with warnings."),p.warn(t.toString({chunks:!1,assets:!1,colors:!0,children:!0,errors:!0,warnings:!0}))),await tt(t),n.empConfig.lifeCycle.afterBulid&&await n.empConfig.lifeCycle.afterBulid()})}},as=new ue});import ps from"https";import ls from"compression";import cs from"cors";import ms from"express";var _,mt=l(()=>{"use strict";J();_=class extends x{app;async init(){let e=ms();e.use(ls()),e.use(cs()),this.app=e}async server(){if(this.isHttps){let[e,t]=await this.getcert();ps.createServer(typeof this.isHttps!="boolean"?this.isHttps:{key:e,cert:t},this.app).listen(this.sf.port,async()=>{this.startOpen(),await this.onReady()})}else this.app.listen(this.sf.port,async()=>{this.startOpen(),await this.onReady()})}async onReady(){}async middleware(){}async start(){await this.init(),await this.middleware(),await this.server()}}});var ht={};V(ht,{default:()=>ds});import hs from"node:fs";import fs from"node:fs/promises";import us from"path";import gs from"express";var ge,ds,ft=l(()=>{"use strict";H();v();u();mt();ge=class extends _{timing=0;async run(){if(this.timing=Date.now(),!hs.existsSync(n.outDir))return p.sysError(`emp serve must be executed after emp build,${n.outDir} not exist!`);n.empConfig.lifeCycle.beforeServe&&await n.empConfig.lifeCycle.beforeServe(),this.start()}async middleware(){let e=n.resolve(n.rsConfig.output?.path);this.app.use(gs.static(e));let t=await fs.readFile(us.join(e,"index.html"),"utf8");this.app.get("*",(s,r)=>r.send(t))}async onReady(){G(Date.now()-this.timing),n.empConfig.lifeCycle.afterServe&&await n.empConfig.lifeCycle.afterServe()}},ds=new ge});v();y();u();import de,{exit as ys}from"node:process";import{program as E}from"commander";function ut(){let i="20.0.0";j(i,de.versions.node)===1&&(p.sysError(`\u5F53\u524D\u7248\u672C\u4E3Av${de.versions.node} \u6700\u4F4E\u8981\u6C42\u4E3Av${i}`),ys(0)),E.version(n.empPkg.version,"-v, --version").usage("<command> [options]"),E.command("dev").description("Dev \u6A21\u5F0F").option("-e, --env <env>","\u90E8\u7F72\u73AF\u5883 dev\u3001test\u3001prod").option("-h, --hot","\u662F\u5426\u4F7F\u7528\u70ED\u66F4\u65B0 \u9ED8\u8BA4\u542F\u52A8").option("-o, --open","\u662F\u5426\u6253\u5F00\u8C03\u8BD5\u9875\u9762 \u9ED8\u8BA4\u4E0D\u6253\u5F00").option("-t, --ts","\u751F\u6210\u7C7B\u578B\u6587\u4EF6 \u9ED8\u8BA4\u4E3A false").option("-pr, --profile","\u7EDF\u8BA1\u6A21\u5757\u6D88\u8017").option("-cl, --clearLog <clearLog>","\u6E05\u7A7A\u65E5\u5FD7 \u9ED8\u8BA4\u4E3A true").option("-ev, --env-vars <key=value>","\u5B9A\u4E49\u4E00\u4E2A\u73AF\u5883\u53D8\u91CF -ev key=value \u591A\u4E2A\u73AF\u5883\u53D8\u91CF\u91CD\u590D\u8C03\u7528 -ev key=value -ev key=value",(e,t)=>{let[s,r]=e.split("=");return t[s]=r,t},{}).action(async e=>{let{default:t}=await Promise.resolve().then(()=>(pt(),at));await t.setup("dev",e)}),E.command("build").description("Build \u6A21\u5F0F").option("-e, --env <env>","\u90E8\u7F72\u73AF\u5883 dev\u3001test\u3001prod").option("-a, --analyze","\u751F\u6210\u5206\u6790\u62A5\u544A \u9ED8\u8BA4\u4E3A false").option("-t, --ts","\u751F\u6210\u7C7B\u578B\u6587\u4EF6 \u9ED8\u8BA4\u4E3A false").option("-pr, --profile","\u7EDF\u8BA1\u6A21\u5757\u6D88\u8017").option("-cl, --clearLog <clearLog>","\u6E05\u7A7A\u65E5\u5FD7 \u9ED8\u8BA4\u4E3A true").option("-ev, --env-vars <key=value>","\u5B9A\u4E49\u4E00\u4E2A\u73AF\u5883\u53D8\u91CF -ev key=value \u591A\u4E2A\u73AF\u5883\u53D8\u91CF\u91CD\u590D\u8C03\u7528 -ev key=value -ev key=value",(e,t)=>{let[s,r]=e.split("=");return t[s]=r,t},{}).action(async e=>{let{default:t}=await Promise.resolve().then(()=>(ct(),lt));await t.setup("build",e)}),E.command("serve").description("Server \u6A21\u5F0F").option("-cl, --clearLog <clearLog>","\u6E05\u7A7A\u65E5\u5FD7 \u9ED8\u8BA4\u4E3A true").action(async e=>{let{default:t}=await Promise.resolve().then(()=>(ft(),ht));await t.setup("serve",e)}),E.command("dts").description("\u62C9\u53D6 remote \u9879\u76EE\u7684 d.ts").option("-p, --typingsPath <typingsPath>","\u4E0B\u8F7D\u76EE\u5F55").option("-e, --env <env>","\u90E8\u7F72\u73AF\u5883 dev\u3001test\u3001prod").action(e=>{}),E.command("init").description("\u521D\u59CB\u5316 emp \u9879\u76EE").option("-d, --data [data]","JSON\u6570\u636E http\u5730\u5740 \u6216\u8005 \u6587\u4EF6\u8DEF\u5F84\u76F8\u5BF9\u3001\u7EDD\u5BF9\u8DEF\u5F84").action(e=>{}),E.parse(de.argv)}u();import gt from"node:fs/promises";import ye from"node:path";import{glob as bs}from"glob";var vs=/(?:(?:import|export)\s?(?:type)?\s?(?:(?:\{[^;\n]+\})|(?:[^;\n]+))\s?from\s?['"][^;\n]+['"])|(?:import\(['"][^;\n]+?['"]\))/g,ws=/(?:import|export)\s?(?:type)?\s?\{?.+\}?\s?from\s?['"](.+)['"]/,Cs=/import\(['"]([^;\n]+?)['"]\)/,be=class{list=[];outDir=n.resolve("dist");aliasName="@empjs/cli";async setup(e,t){e&&(this.outDir=e),t&&(this.aliasName=t);let s=await this.readDts();await this.writeCode(s)}async readDts(){this.list=await bs([`${n.empConfig.build.outDir}/**/*.d.ts`],{windowsPathsNoEscape:!0});let e=[];this.list.map(s=>{s=n.resolve(s),e.push(this.readFile(s))});let t=await Promise.all(e);return t=t.map(s=>this.replaceAliasPath(s)),t}async readFile(e){let t=await gt.readFile(e,{encoding:"utf-8"});return{src:e,code:t}}replaceAliasPath({src:e,code:t}){t=t.replace(vs,r=>{let o=r.match(ws);if(o||(o=r.match(Cs)),o&&o[1]){let a=o[1];if(!a.startsWith("."))return r;let m=ye.resolve(ye.dirname(e),a).replace(this.outDir,this.aliasName);return r.replace(o[1],m)}return r});let s=e.replace(this.outDir,this.aliasName).replace(".d.ts","");return s.endsWith("/index")&&(s=s.replace("/index","")),t=this.warpDeclareModule(s,t),{code:t,src:e,mod:s}}warpDeclareModule(e,t){return`declare module '${e}' {\r
|
|
16
16
|
${t}}\r
|
|
17
|
-
`}async writeCode(e){let t="";e.map(s=>{t+=s.code}),await gt.writeFile(ye.join(this.outDir.replace("dist","types"),"type.d.ts"),t)}},xs=new be;u();function
|
|
17
|
+
`}async writeCode(e){let t="";e.map(s=>{t+=s.code}),await gt.writeFile(ye.join(this.outDir.replace("dist","types"),"type.d.ts"),t)}},xs=new be;u();function ro(i){return i}export{ro as defineConfig,xs as dts,ut as runScript,n as store};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { GlobalStore } from '../store';
|
|
2
|
-
import type { BuildType, DebugType, EMPShareType, HtmlType, RsTarget, ServerType } from '../types/config';
|
|
2
|
+
import type { BuildType, DebugType, EMPShareType, EmpOptions, HtmlType, RsTarget, ServerType } from '../types/config';
|
|
3
3
|
import type { Output } from '@rspack/core';
|
|
4
4
|
import { EMPShareLib } from '../store/empShare';
|
|
5
5
|
import { EmpShareFastMode } from '../store/empShare/fastMode';
|
|
@@ -45,9 +45,7 @@ export declare class EmpConfig {
|
|
|
45
45
|
get entries(): import("../types/config").EntriesType;
|
|
46
46
|
get server(): ServerType;
|
|
47
47
|
get empShare(): EMPShareType;
|
|
48
|
-
get css():
|
|
49
|
-
postcss: never[];
|
|
50
|
-
};
|
|
48
|
+
get css(): Required<EmpOptions['css']>;
|
|
51
49
|
get output(): Output;
|
|
52
50
|
get define(): {
|
|
53
51
|
[k: string]: string;
|
package/dist/types/config.d.ts
CHANGED
|
@@ -169,9 +169,6 @@ export interface HtmlType extends HtmlRspackPluginOptions {
|
|
|
169
169
|
export type EntriesType = {
|
|
170
170
|
[entryFilename: string]: HtmlType;
|
|
171
171
|
};
|
|
172
|
-
export type CSSOptions = {
|
|
173
|
-
postcss?: [string, any][];
|
|
174
|
-
};
|
|
175
172
|
export interface ModuleTransform {
|
|
176
173
|
exclude?: RuleSetRule['exclude'][];
|
|
177
174
|
include?: RuleSetRule['include'][];
|
|
@@ -302,7 +299,9 @@ export type EmpOptions = {
|
|
|
302
299
|
/**
|
|
303
300
|
* css 相关设置
|
|
304
301
|
*/
|
|
305
|
-
css?:
|
|
302
|
+
css?: {
|
|
303
|
+
sass?: 'default' | 'embedded';
|
|
304
|
+
};
|
|
306
305
|
/**
|
|
307
306
|
* 模块编译
|
|
308
307
|
* 如 node_modules 模块 是否加入编译
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@empjs/cli",
|
|
3
|
-
"version": "3.0.0-rc.
|
|
3
|
+
"version": "3.0.0-rc.15",
|
|
4
4
|
"description": "emp",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -88,6 +88,7 @@
|
|
|
88
88
|
"html-webpack-plugin": "^5.6.0",
|
|
89
89
|
"less-loader": "^12.2.0",
|
|
90
90
|
"open": "^10.1.0",
|
|
91
|
+
"sass-embedded": "^1.77.2",
|
|
91
92
|
"sass-loader": "^14.2.0",
|
|
92
93
|
"strip-ansi": "^7.1.0",
|
|
93
94
|
"typescript-plugin-css-modules": "^5.1.0",
|