@lytjs/cli 3.2.1 → 3.2.2

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/cli.js CHANGED
File without changes
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@
11
11
  <script type="module" src="/src/main.ts"></script>
12
12
  </body>
13
13
  </html>
14
- `}function ge(){return`import { createApp } from 'lyt';
14
+ `}function ge(){return`import { createApp } from '@lytjs/lytjs';
15
15
  import App from './App';
16
16
 
17
17
  // \u521B\u5EFA\u5E94\u7528\u5B9E\u4F8B
@@ -19,7 +19,7 @@ const app = createApp(App);
19
19
 
20
20
  // \u5C06\u5E94\u7528\u6302\u8F7D\u5230 #app \u5143\u7D20
21
21
  app.mount('#app');
22
- `}function me(){return`import { defineComponent } from 'lyt';
22
+ `}function me(){return`import { defineComponent } from '@lytjs/lytjs';
23
23
 
24
24
  // \u5B9A\u4E49\u6839\u7EC4\u4EF6
25
25
  const App = defineComponent({
@@ -75,7 +75,7 @@ body {
75
75
  font-size: 1.2rem;
76
76
  color: #666;
77
77
  }
78
- `}function ye(e){return JSON.stringify({name:e,version:"0.1.0",private:!0,type:"module",scripts:{dev:"lyt dev",build:"lyt build",preview:"lyt preview"},dependencies:{lyt:"latest"},devDependencies:{typescript:"^5.0.0"}},null,2)+`
78
+ `}function ye(e){return JSON.stringify({name:e,version:"0.1.0",private:!0,type:"module",scripts:{dev:"lyt dev",build:"lyt build",preview:"lyt preview"},dependencies:{"@lytjs/lytjs":"latest"},devDependencies:{typescript:"^5.0.0"}},null,2)+`
79
79
  `}function be(){return JSON.stringify({compilerOptions:{target:"ES2020",module:"ESNext",moduleResolution:"bundler",strict:!0,jsx:"preserve",resolveJsonModule:!0,isolatedModules:!0,esModuleInterop:!0,lib:["ES2020","DOM","DOM.Iterable"],skipLibCheck:!0,noEmit:!0,paths:{"@/*":["./src/*"]}},include:["src/**/*.ts","src/**/*.tsx"],exclude:["node_modules","dist"]},null,2)+`
80
80
  `}function xe(){return`# \u4F9D\u8D56
81
81
  node_modules/
@@ -100,7 +100,7 @@ Thumbs.db
100
100
  # \u65E5\u5FD7
101
101
  *.log
102
102
  npm-debug.log*
103
- `}async function _(e,o={}){let n=o.template||"spa",r=T.resolve(process.cwd(),e);i.info(`\u6B63\u5728\u521B\u5EFA Lyt \u9879\u76EE: ${t(e,"brightCyan")}`),i.info(`\u4F7F\u7528\u6A21\u677F: ${t(n,"brightCyan")}`),F(r)&&(i.error(`\u76EE\u5F55 "${e}" \u5DF2\u5B58\u5728\uFF0C\u8BF7\u9009\u62E9\u5176\u4ED6\u540D\u79F0\u6216\u5220\u9664\u5DF2\u6709\u76EE\u5F55`),process.exit(1)),$(r);let s=[{filePath:"index.html",content:fe()},{filePath:"src/main.ts",content:ge()},{filePath:"src/App.ts",content:me()},{filePath:"src/style.css",content:he()},{filePath:"package.json",content:ye(e)},{filePath:"tsconfig.json",content:be()},{filePath:".gitignore",content:xe()}];for(let a of s){let u=T.join(r,a.filePath);S(u,a.content),i.success(` \u521B\u5EFA ${a.filePath}`)}console.log(""),i.success(`\u9879\u76EE ${t(e,"brightCyan")} \u521B\u5EFA\u6210\u529F\uFF01`),console.log(""),console.log(" \u8BF7\u6267\u884C\u4EE5\u4E0B\u547D\u4EE4\u542F\u52A8\u9879\u76EE\uFF1A"),console.log(""),console.log(` ${t("cd","brightGreen")} ${e}`),console.log(` ${t("npm install","brightGreen")}`),console.log(` ${t("npm run dev","brightGreen")}`),console.log("")}var D=m(require("path"));function ve(e){let o={name:e.name,version:"0.1.0",private:!0,type:"module",scripts:{dev:"lytx dev",build:"lytx build",preview:"lytx preview"},dependencies:{lyt:"^2.0.0"}};return e.ts&&(o.devDependencies={typescript:"^5.0.0"}),e.eslint&&(o.devDependencies=o.devDependencies||{},o.devDependencies.eslint="^8.0.0",o.scripts=o.scripts||{},o.scripts.lint="eslint src --ext .ts,.js"),e.router&&(o.dependencies["@lytjs/router"]="^2.0.0"),e.store&&(o.dependencies["@lytjs/store"]="^2.0.0"),JSON.stringify(o,null,2)+`
103
+ `}async function _(e,o={}){let n=o.template||"spa",r=T.resolve(process.cwd(),e);i.info(`\u6B63\u5728\u521B\u5EFA Lyt \u9879\u76EE: ${t(e,"brightCyan")}`),i.info(`\u4F7F\u7528\u6A21\u677F: ${t(n,"brightCyan")}`),F(r)&&(i.error(`\u76EE\u5F55 "${e}" \u5DF2\u5B58\u5728\uFF0C\u8BF7\u9009\u62E9\u5176\u4ED6\u540D\u79F0\u6216\u5220\u9664\u5DF2\u6709\u76EE\u5F55`),process.exit(1)),$(r);let s=[{filePath:"index.html",content:fe()},{filePath:"src/main.ts",content:ge()},{filePath:"src/App.ts",content:me()},{filePath:"src/style.css",content:he()},{filePath:"package.json",content:ye(e)},{filePath:"tsconfig.json",content:be()},{filePath:".gitignore",content:xe()}];for(let a of s){let u=T.join(r,a.filePath);S(u,a.content),i.success(` \u521B\u5EFA ${a.filePath}`)}console.log(""),i.success(`\u9879\u76EE ${t(e,"brightCyan")} \u521B\u5EFA\u6210\u529F\uFF01`),console.log(""),console.log(" \u8BF7\u6267\u884C\u4EE5\u4E0B\u547D\u4EE4\u542F\u52A8\u9879\u76EE\uFF1A"),console.log(""),console.log(` ${t("cd","brightGreen")} ${e}`),console.log(` ${t("npm install","brightGreen")}`),console.log(` ${t("npm run dev","brightGreen")}`),console.log("")}var D=m(require("path"));function ve(e){let o={name:e.name,version:"0.1.0",private:!0,type:"module",scripts:{dev:"lytx dev",build:"lytx build",preview:"lytx preview"},dependencies:{"@lytjs/lytjs":"latest"}};return e.ts&&(o.devDependencies={typescript:"^5.0.0"}),e.eslint&&(o.devDependencies=o.devDependencies||{},o.devDependencies.eslint="^8.0.0",o.scripts=o.scripts||{},o.scripts.lint="eslint src --ext .ts,.js"),e.router&&(o.dependencies["@lytjs/router"]="latest"),e.store&&(o.dependencies["@lytjs/store"]="latest"),JSON.stringify(o,null,2)+`
104
104
  `}function $e(e){let o={compilerOptions:{target:"ES2020",module:"ESNext",moduleResolution:"bundler",strict:!0,jsx:"preserve",resolveJsonModule:!0,isolatedModules:!0,esModuleInterop:!0,lib:["ES2020","DOM","DOM.Iterable"],skipLibCheck:!0,noEmit:!0,paths:{"@/*":["./src/*"]}},include:["src/**/*.ts","src/**/*.tsx"],exclude:["node_modules","dist"]};return e.template==="ssr"&&(o.compilerOptions.types=["node"]),JSON.stringify(o,null,2)+`
105
105
  `}function we(e){let o=e.ts?".ts":".js";return`<!DOCTYPE html>
106
106
  <html lang="zh-CN">
@@ -115,10 +115,10 @@ npm-debug.log*
115
115
  <script type="module" src="/src/main${o}"></script>
116
116
  </body>
117
117
  </html>
118
- `}function Se(e){let o=["// Lytx \u914D\u7F6E\u6587\u4EF6","import { defineConfig } from 'lyt'","","export default defineConfig({"," // \u6784\u5EFA\u6A21\u5F0F",` mode: '${e.template}',`];return e.router&&(o.push(" // \u8DEF\u7531\u914D\u7F6E"),o.push(" router: {"),o.push(" historyMode: true,"),o.push(" },")),e.store&&(o.push(" // \u72B6\u6001\u7BA1\u7406\u914D\u7F6E"),o.push(" store: {"),o.push(" strict: true,"),o.push(" },")),o.push("})"),o.push(""),o.join(`
119
- `)}function Ce(e){let o=e.ts?".ts":".js",n=["import { createApp } from 'lyt'","import App from './App.lyt'","import './styles/main.css'"];return e.router&&n.push("import { router } from './router'"),e.store&&n.push("import { store } from './store'"),n.push(""),n.push("// \u521B\u5EFA\u5E94\u7528\u5B9E\u4F8B"),n.push("const app = createApp(App)"),e.router&&n.push("app.use(router)"),e.store&&n.push("app.use(store)"),n.push(""),n.push("// \u5C06\u5E94\u7528\u6302\u8F7D\u5230 #app \u5143\u7D20"),n.push("app.mount('#app')"),n.join(`
118
+ `}function Se(e){let o=["// Lytx \u914D\u7F6E\u6587\u4EF6","import { defineConfig } from '@lytjs/lytjs'","","export default defineConfig({"," // \u6784\u5EFA\u6A21\u5F0F",` mode: '${e.template}',`];return e.router&&(o.push(" // \u8DEF\u7531\u914D\u7F6E"),o.push(" router: {"),o.push(" historyMode: true,"),o.push(" },")),e.store&&(o.push(" // \u72B6\u6001\u7BA1\u7406\u914D\u7F6E"),o.push(" store: {"),o.push(" strict: true,"),o.push(" },")),o.push("})"),o.push(""),o.join(`
119
+ `)}function Ce(e){let o=e.ts?".ts":".js",n=["import { createApp } from '@lytjs/lytjs'","import App from './App.lyt'","import './styles/main.css'"];return e.router&&n.push("import { router } from './router'"),e.store&&n.push("import { store } from './store'"),n.push(""),n.push("// \u521B\u5EFA\u5E94\u7528\u5B9E\u4F8B"),n.push("const app = createApp(App)"),e.router&&n.push("app.use(router)"),e.store&&n.push("app.use(store)"),n.push(""),n.push("// \u5C06\u5E94\u7528\u6302\u8F7D\u5230 #app \u5143\u7D20"),n.push("app.mount('#app')"),n.join(`
120
120
  `)+`
121
- `}function Me(){return`<template>
121
+ `}function je(){return`<template>
122
122
  <div class="app">
123
123
  <Header />
124
124
  <main>
@@ -129,7 +129,7 @@ npm-debug.log*
129
129
  </template>
130
130
 
131
131
  <script lang="ts">
132
- import { defineComponent } from 'lyt'
132
+ import { defineComponent } from '@lytjs/lytjs'
133
133
  import Header from './components/Header'
134
134
 
135
135
  export default defineComponent({
@@ -146,7 +146,7 @@ export default defineComponent({
146
146
  padding: 20px;
147
147
  }
148
148
  </style>
149
- `}function Pe(){return`import { defineComponent } from 'lyt'
149
+ `}function Me(){return`import { defineComponent } from '@lytjs/lytjs'
150
150
 
151
151
  export default defineComponent({
152
152
  name: 'HomePage',
@@ -158,7 +158,7 @@ export default defineComponent({
158
158
  </div>
159
159
  \`,
160
160
  })
161
- `}function Re(){return`import { defineComponent } from 'lyt'
161
+ `}function Pe(){return`import { defineComponent } from '@lytjs/lytjs'
162
162
 
163
163
  export default defineComponent({
164
164
  name: 'AboutPage',
@@ -170,7 +170,7 @@ export default defineComponent({
170
170
  </div>
171
171
  \`,
172
172
  })
173
- `}function je(){return`import { defineComponent } from 'lyt'
173
+ `}function Re(){return`import { defineComponent } from '@lytjs/lytjs'
174
174
 
175
175
  export default defineComponent({
176
176
  name: 'Header',
@@ -258,12 +258,12 @@ a:hover {
258
258
  <text x="16" y="22" text-anchor="middle" fill="white" font-size="18" font-weight="bold">L</text>
259
259
  </svg>
260
260
  `}function ke(){return JSON.stringify({root:!0,env:{browser:!0,es2021:!0,node:!0},extends:["eslint:recommended"],parserOptions:{ecmaVersion:"latest",sourceType:"module"},rules:{"no-unused-vars":"warn","no-console":"warn"}},null,2)+`
261
- `}async function L(e){let{name:o,template:n,ts:r,router:s,store:a,eslint:u}=e,l=D.resolve(process.cwd(),o);if(i.info(`\u6B63\u5728\u521B\u5EFA Lyt \u9879\u76EE: ${t(o,"brightCyan")}`),i.info(`\u4F7F\u7528\u6A21\u677F: ${t(n,"brightCyan")}`),F(l))throw i.error(`\u76EE\u5F55 "${o}" \u5DF2\u5B58\u5728\uFF0C\u8BF7\u9009\u62E9\u5176\u4ED6\u540D\u79F0\u6216\u5220\u9664\u5DF2\u6709\u76EE\u5F55`),new Error(`Directory "${o}" already exists`);$(l);let c=[{filePath:"package.json",content:ve(e)},{filePath:"index.html",content:we(e)},{filePath:"lytx.config.ts",content:Se(e)},{filePath:"src/main.ts",content:Ce(e)},{filePath:"src/App.lyt",content:Me()},{filePath:"src/pages/index.ts",content:Pe()},{filePath:"src/pages/about.ts",content:Re()},{filePath:"src/components/Header.ts",content:je()},{filePath:"src/styles/main.css",content:Ee()},{filePath:"public/favicon.svg",content:Fe()}];r&&c.push({filePath:"tsconfig.json",content:$e(e)}),s&&c.push({filePath:"src/router/index.ts",content:He()}),a&&c.push({filePath:"src/store/index.ts",content:Ae()}),u&&c.push({filePath:".eslintrc.json",content:ke()});for(let p of c){let d=D.join(l,p.filePath);S(d,p.content),i.success(` \u521B\u5EFA ${p.filePath}`)}console.log(""),i.success(`\u9879\u76EE ${t(o,"brightCyan")} \u521B\u5EFA\u6210\u529F\uFF01`),console.log(""),console.log(" \u8BF7\u6267\u884C\u4EE5\u4E0B\u547D\u4EE4\u542F\u52A8\u9879\u76EE\uFF1A"),console.log(""),console.log(` ${t("cd","brightGreen")} ${o}`),console.log(` ${t("npm install","brightGreen")}`),console.log(` ${t("npm run dev","brightGreen")}`),console.log("")}var K=m(require("fs")),B=m(require("fs")),P=m(require("path"));var J=m(require("http")),M=m(require("fs")),b=m(require("path")),q=m(require("crypto")),O=class{constructor(){this.clients=[]}handleUpgrade(o,n,r){let s=o.headers["sec-websocket-key"];if(!s){n.destroy();return}let a=q.createHash("sha1").update(s+"258EAFA5-E914-47DA-95CA-C5AB0DC85B11").digest("base64");n.write(`HTTP/1.1 101 Switching Protocols\r
261
+ `}async function L(e){let{name:o,template:n,ts:r,router:s,store:a,eslint:u}=e,l=D.resolve(process.cwd(),o);if(i.info(`\u6B63\u5728\u521B\u5EFA Lyt \u9879\u76EE: ${t(o,"brightCyan")}`),i.info(`\u4F7F\u7528\u6A21\u677F: ${t(n,"brightCyan")}`),F(l))throw i.error(`\u76EE\u5F55 "${o}" \u5DF2\u5B58\u5728\uFF0C\u8BF7\u9009\u62E9\u5176\u4ED6\u540D\u79F0\u6216\u5220\u9664\u5DF2\u6709\u76EE\u5F55`),new Error(`Directory "${o}" already exists`);$(l);let c=[{filePath:"package.json",content:ve(e)},{filePath:"index.html",content:we(e)},{filePath:"lytx.config.ts",content:Se(e)},{filePath:"src/main.ts",content:Ce(e)},{filePath:"src/App.lyt",content:je()},{filePath:"src/pages/index.ts",content:Me()},{filePath:"src/pages/about.ts",content:Pe()},{filePath:"src/components/Header.ts",content:Re()},{filePath:"src/styles/main.css",content:Ee()},{filePath:"public/favicon.svg",content:Fe()}];r&&c.push({filePath:"tsconfig.json",content:$e(e)}),s&&c.push({filePath:"src/router/index.ts",content:He()}),a&&c.push({filePath:"src/store/index.ts",content:Ae()}),u&&c.push({filePath:".eslintrc.json",content:ke()});for(let p of c){let d=D.join(l,p.filePath);S(d,p.content),i.success(` \u521B\u5EFA ${p.filePath}`)}console.log(""),i.success(`\u9879\u76EE ${t(o,"brightCyan")} \u521B\u5EFA\u6210\u529F\uFF01`),console.log(""),console.log(" \u8BF7\u6267\u884C\u4EE5\u4E0B\u547D\u4EE4\u542F\u52A8\u9879\u76EE\uFF1A"),console.log(""),console.log(` ${t("cd","brightGreen")} ${o}`),console.log(` ${t("npm install","brightGreen")}`),console.log(` ${t("npm run dev","brightGreen")}`),console.log("")}var K=m(require("fs")),B=m(require("fs")),M=m(require("path"));var J=m(require("http")),j=m(require("fs")),b=m(require("path")),q=m(require("crypto")),O=class{constructor(){this.clients=[]}handleUpgrade(o,n,r){let s=o.headers["sec-websocket-key"];if(!s){n.destroy();return}let a=q.createHash("sha1").update(s+"258EAFA5-E914-47DA-95CA-C5AB0DC85B11").digest("base64");n.write(`HTTP/1.1 101 Switching Protocols\r
262
262
  Upgrade: websocket\r
263
263
  Connection: Upgrade\r
264
264
  Sec-WebSocket-Accept: ${a}\r
265
265
  \r
266
- `);let u={socket:n,isAlive:!0};n.on("close",()=>{this.clients=this.clients.filter(l=>l!==u)}),n.on("error",()=>{this.clients=this.clients.filter(l=>l!==u)}),this.clients.push(u)}broadcast(o){let n=[];for(let r of this.clients)try{if(!r.isAlive){n.push(r);continue}let s=Buffer.from(o,"utf-8"),a=this.createFrame(129,s);r.socket.write(a)}catch(s){n.push(r)}for(let r of n){this.clients=this.clients.filter(s=>s!==r);try{r.socket.destroy()}catch(s){}}}createFrame(o,n){let r=n.length,s;r<126?s=2:r<65536?s=4:s=10;let a=Buffer.alloc(s+r);return a[0]=o,r<126?a[1]=r:r<65536?(a[1]=126,a.writeUInt16BE(r,2)):(a[1]=127,a.writeUInt32BE(0,2),a.writeUInt32BE(r,6)),n.copy(a,s),a}getClientCount(){return this.clients.length}closeAll(){for(let o of this.clients)try{o.socket.destroy()}catch(n){}this.clients=[]}};function G(e){let o=new O,n=[],r=[],s=null,a=!1;function u(c){let p=b.extname(c).toLowerCase();if(p===".css")return"css";let d=b.basename(c);return d.startsWith("lytx.config")||d==="tsconfig.json"||d==="package.json"?"reload":p===".ts"||p===".tsx"||p===".lyt"||p===".js"||p===".jsx"?"update":"reload"}function l(c){try{let p=M.readdirSync(c,{withFileTypes:!0});for(let d of p){let f=b.join(c,d.name);if(d.isDirectory()){if(d.name==="node_modules"||d.name===".git"||d.name==="dist")continue;l(f)}else if(d.isFile()){let R=b.extname(d.name).toLowerCase();if(new Set([".ts",".tsx",".js",".jsx",".css",".html",".json",".lyt"]).has(R))try{let j=M.watch(f,{persistent:!1},W=>{if(W==="change"){let H=b.relative(e,f);for(let w of n)try{w(H)}catch(A){}let C=u(f),v={type:C,path:`/${H}`};if(C==="css")try{v.content=M.readFileSync(f,"utf-8")}catch(w){}o.broadcast(JSON.stringify(v))}});r.push(j)}catch(j){}}}}catch(p){}}return{start(c){a||(a=!0,s=J.createServer((p,d)=>{d.writeHead(426,{"Content-Type":"text/plain"}),d.end("Upgrade Required")}),s.on("upgrade",(p,d,f)=>{o.handleUpgrade(p,d,f)}),s.listen(c,()=>{}),l(e))},stop(){a=!1;for(let c of r)try{c.close()}catch(p){}if(r.length=0,o.closeAll(),s){try{s.close()}catch(c){}s=null}},onFileChange(c){n.push(c)},notifyClient(c){o.broadcast(JSON.stringify(c))}}}function V(e){let o=new O;return e.on("upgrade",(n,r,s)=>{o.handleUpgrade(n,r,s)}),{broadcast(n){o.broadcast(n)},getClientCount(){return o.getClientCount()}}}function I(){return`(function() {
266
+ `);let u={socket:n,isAlive:!0};n.on("close",()=>{this.clients=this.clients.filter(l=>l!==u)}),n.on("error",()=>{this.clients=this.clients.filter(l=>l!==u)}),this.clients.push(u)}broadcast(o){let n=[];for(let r of this.clients)try{if(!r.isAlive){n.push(r);continue}let s=Buffer.from(o,"utf-8"),a=this.createFrame(129,s);r.socket.write(a)}catch(s){n.push(r)}for(let r of n){this.clients=this.clients.filter(s=>s!==r);try{r.socket.destroy()}catch(s){}}}createFrame(o,n){let r=n.length,s;r<126?s=2:r<65536?s=4:s=10;let a=Buffer.alloc(s+r);return a[0]=o,r<126?a[1]=r:r<65536?(a[1]=126,a.writeUInt16BE(r,2)):(a[1]=127,a.writeUInt32BE(0,2),a.writeUInt32BE(r,6)),n.copy(a,s),a}getClientCount(){return this.clients.length}closeAll(){for(let o of this.clients)try{o.socket.destroy()}catch(n){}this.clients=[]}};function G(e){let o=new O,n=[],r=[],s=null,a=!1;function u(c){let p=b.extname(c).toLowerCase();if(p===".css")return"css";let d=b.basename(c);return d.startsWith("lytx.config")||d==="tsconfig.json"||d==="package.json"?"reload":p===".ts"||p===".tsx"||p===".lyt"||p===".js"||p===".jsx"?"update":"reload"}function l(c){try{let p=j.readdirSync(c,{withFileTypes:!0});for(let d of p){let f=b.join(c,d.name);if(d.isDirectory()){if(d.name==="node_modules"||d.name===".git"||d.name==="dist")continue;l(f)}else if(d.isFile()){let P=b.extname(d.name).toLowerCase();if(new Set([".ts",".tsx",".js",".jsx",".css",".html",".json",".lyt"]).has(P))try{let R=j.watch(f,{persistent:!1},W=>{if(W==="change"){let H=b.relative(e,f);for(let w of n)try{w(H)}catch(A){}let C=u(f),v={type:C,path:`/${H}`};if(C==="css")try{v.content=j.readFileSync(f,"utf-8")}catch(w){}o.broadcast(JSON.stringify(v))}});r.push(R)}catch(R){}}}}catch(p){}}return{start(c){a||(a=!0,s=J.createServer((p,d)=>{d.writeHead(426,{"Content-Type":"text/plain"}),d.end("Upgrade Required")}),s.on("upgrade",(p,d,f)=>{o.handleUpgrade(p,d,f)}),s.listen(c,()=>{}),l(e))},stop(){a=!1;for(let c of r)try{c.close()}catch(p){}if(r.length=0,o.closeAll(),s){try{s.close()}catch(c){}s=null}},onFileChange(c){n.push(c)},notifyClient(c){o.broadcast(JSON.stringify(c))}}}function V(e){let o=new O;return e.on("upgrade",(n,r,s)=>{o.handleUpgrade(n,r,s)}),{broadcast(n){o.broadcast(n)},getClientCount(){return o.getClientCount()}}}function I(){return`(function() {
267
267
  'use strict';
268
268
 
269
269
  var ws = null;
@@ -361,8 +361,8 @@ Sec-WebSocket-Accept: ${a}\r
361
361
 
362
362
  // \u542F\u52A8\u8FDE\u63A5
363
363
  connect();
364
- })();`}var X;try{X=require("esbuild")}catch(e){i.error("\u7F3A\u5C11\u4F9D\u8D56: esbuild"),i.error(""),i.error(" Lyt CLI \u7684\u5F00\u53D1\u670D\u52A1\u5668\u9700\u8981 esbuild \u6765\u5B9E\u65F6\u7F16\u8BD1 TypeScript\u3002"),i.error(""),i.error(" \u8BF7\u6267\u884C\u4EE5\u4E0B\u547D\u4EE4\u5B89\u88C5:"),i.error(` ${t("npm install esbuild --save-dev","brightGreen")}`),i.error(""),i.error(" \u5982\u679C\u60A8\u4F7F\u7528 pnpm:"),i.error(` ${t("pnpm add esbuild -D","brightGreen")}`),i.error(""),process.exit(1)}function Te(e,o){try{return X.transformSync(e,{loader:"ts",target:"es2018",format:"esm",sourcemap:"inline"}).code}catch(n){let r=n instanceof Error?n.message:String(n);return console.error(`[Lyt CLI] \u7F16\u8BD1\u9519\u8BEF ${o||""}:`,r),e}}function De(e,o){var c;let n=((c=e.url)==null?void 0:c.split("?")[0])||"/";n==="/"&&(n="/index.html");let r=P.join(o,n);if(!r.startsWith(o))return{statusCode:403,headers:{"Content-Type":"text/plain; charset=utf-8"},body:"403 Forbidden"};if(!B.existsSync(r)||!B.statSync(r).isFile())return{statusCode:404,headers:{"Content-Type":"text/plain; charset=utf-8"},body:"404 Not Found"};let s=P.extname(r).toLowerCase(),u={".html":"text/html; charset=utf-8",".css":"text/css; charset=utf-8",".js":"application/javascript; charset=utf-8",".mjs":"application/javascript; charset=utf-8",".ts":"application/typescript; charset=utf-8",".json":"application/json; charset=utf-8",".svg":"image/svg+xml",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".ico":"image/x-icon",".woff":"font/woff",".woff2":"font/woff2",".txt":"text/plain; charset=utf-8"}[s]||"application/octet-stream",l=k(r);return(s===".ts"||s===".tsx")&&(l=Te(l,n)),s===".html"&&(l=l.replace("</head>",`<script>${I()}</script>
365
- </head>`)),{statusCode:200,headers:{"Content-Type":u},body:l}}function N(e={}){let o=e.port||3e3,n=P.resolve(e.root||process.cwd()),r=e.hmr!==!1,s=G(n),a=K.createServer((l,c)=>{let p=De(l,n);c.writeHead(p.statusCode,p.headers),c.end(p.body)});r&&a.on("upgrade",(l,c,p)=>{s.handleUpgrade(l,c,p)}),a.listen(o,()=>{console.log(""),console.log(t(" \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557","brightCyan")),console.log(t(" \u2551","brightCyan")+t(" Lyt \u5F00\u53D1\u670D\u52A1\u5668\u5DF2\u542F\u52A8 ","brightWhite")+t("\u2551","brightCyan")),console.log(t(" \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D","brightCyan")),console.log(""),console.log(` ${t("\u279C","brightGreen")} \u672C\u5730\u8BBF\u95EE: ${t(`http://localhost:${o}`,"brightBlue")}`),console.log(` ${t("\u279C","brightGreen")} \u7F51\u7EDC\u8BBF\u95EE: ${t(`http://127.0.0.1:${o}`,"brightBlue")}`),console.log(` ${t("\u279C","brightGreen")} \u9879\u76EE\u76EE\u5F55: ${t(n,"brightBlue")}`),console.log(` ${t("\u279C","brightGreen")} \u70ED\u66F4\u65B0: ${t(r?"\u5DF2\u5F00\u542F":"\u5DF2\u5173\u95ED",r?"brightGreen":"brightRed")}`),console.log(""),console.log(` ${t("\u6309 Ctrl+C \u505C\u6B62\u670D\u52A1\u5668","dim")}`),console.log("")}),a.on("error",l=>{l.code==="EADDRINUSE"?(i.error(`\u7AEF\u53E3 ${o} \u5DF2\u88AB\u5360\u7528\uFF0C\u8BF7\u4F7F\u7528 --port \u6307\u5B9A\u5176\u4ED6\u7AEF\u53E3`),process.exit(1)):(i.error(`\u670D\u52A1\u5668\u542F\u52A8\u5931\u8D25: ${l.message}`),process.exit(1))});let u=()=>{i.info("\u6B63\u5728\u5173\u95ED\u5F00\u53D1\u670D\u52A1\u5668..."),a.close(()=>{i.success("\u670D\u52A1\u5668\u5DF2\u5173\u95ED"),process.exit(0)}),setTimeout(()=>{i.warn("\u670D\u52A1\u5668\u5173\u95ED\u8D85\u65F6\uFF0C\u5F3A\u5236\u9000\u51FA"),process.exit(1)},5e3)};process.on("SIGINT",u),process.on("SIGTERM",u)}var h=m(require("fs")),g=m(require("path"));var Q;try{Q=require("esbuild")}catch(e){i.error("\u7F3A\u5C11\u4F9D\u8D56: esbuild"),i.error(""),i.error(" Lyt CLI \u7684\u6784\u5EFA\u529F\u80FD\u9700\u8981 esbuild\u3002"),i.error(""),i.error(" \u8BF7\u6267\u884C\u4EE5\u4E0B\u547D\u4EE4\u5B89\u88C5:"),i.error(` ${t("npm install esbuild --save-dev","brightGreen")}`),i.error(""),i.error(" \u5982\u679C\u60A8\u4F7F\u7528 pnpm:"),i.error(` ${t("pnpm add esbuild -D","brightGreen")}`),i.error(""),process.exit(1)}async function Z(e={}){let o=Date.now(),n=g.resolve(e.root||process.cwd()),r=g.resolve(n,e.outDir||"dist"),s=e.entry||"index.html",a=e.minify||!1;i.info("\u5F00\u59CB\u6784\u5EFA\u9879\u76EE..."),i.info(` \u6839\u76EE\u5F55: ${t(n,"brightCyan")}`),i.info(` \u8F93\u51FA\u76EE\u5F55: ${t(r,"brightCyan")}`),i.info(` \u538B\u7F29: ${t(a?"\u5F00\u542F":"\u5173\u95ED",a?"brightGreen":"brightYellow")}`);let u=g.join(n,s);h.existsSync(u)||(i.error(`\u5165\u53E3\u6587\u4EF6\u4E0D\u5B58\u5728: ${u}`),process.exit(1));let l=k(u),c=/<script\s+type="module"\s+src="([^"]+)"\s*><\/script>/g,p,d=[];for(;(p=c.exec(l))!==null;)d.push(p[1]);d.length===0&&i.warn("\u672A\u5728\u5165\u53E3 HTML \u4E2D\u627E\u5230\u6A21\u5757\u811A\u672C\u5F15\u7528");let f={inputFiles:0,outputFiles:0,totalSize:0,buildTime:0};$(r),$(g.join(r,"assets"));for(let x of d){let j=g.join(n,x);if(!h.existsSync(j)){i.warn(`\u811A\u672C\u6587\u4EF6\u4E0D\u5B58\u5728: ${x}`);continue}i.info(`\u6B63\u5728\u6253\u5305: ${t(x,"brightYellow")}`);let H=`${g.basename(x,g.extname(x))}.bundle.js`,C=g.join(r,"assets",H);try{await Q.build({entryPoints:[j],bundle:!0,minify:a,target:"es2018",format:"esm",outfile:C,sourcemap:!0,external:A=>A.startsWith("@lytjs/"),drop:a?["console"]:[],metafile:!0});let v=h.readFileSync(C,"utf-8");f.totalSize+=Buffer.byteLength(v,"utf-8"),f.outputFiles++;let w=C+".map";if(h.existsSync(w)){let A=h.readFileSync(w,"utf-8");f.totalSize+=Buffer.byteLength(A,"utf-8"),f.outputFiles++}l=l.replace(`<script type="module" src="${x}"></script>`,`<script src="/assets/${H}"></script>`),f.inputFiles++}catch(v){let w=v instanceof Error?v.message:String(v);i.error(`\u6253\u5305\u5931\u8D25 ${x}: ${w}`),process.exit(1)}}Le(n,r,f);let R=g.join(r,"index.html");S(R,l),f.outputFiles++,f.totalSize+=Buffer.byteLength(l,"utf-8"),f.buildTime=Date.now()-o,console.log(""),i.success("\u6784\u5EFA\u5B8C\u6210\uFF01"),console.log(""),console.log(` ${t("\u8F93\u5165\u6587\u4EF6:","brightWhite")} ${f.inputFiles} \u4E2A`),console.log(` ${t("\u8F93\u51FA\u6587\u4EF6:","brightWhite")} ${f.outputFiles} \u4E2A`),console.log(` ${t("\u603B\u5927\u5C0F:","brightWhite")} ${Oe(f.totalSize)}`),console.log(` ${t("\u6784\u5EFA\u8017\u65F6:","brightWhite")} ${f.buildTime}ms`),console.log(` ${t("\u8F93\u51FA\u76EE\u5F55:","brightWhite")} ${t(r,"brightCyan")}`),console.log("")}function Le(e,o,n){let r=g.join(e,"src");if(!h.existsSync(r))return;function s(a,u){let l=h.readdirSync(a,{withFileTypes:!0});for(let c of l){let p=g.join(a,c.name);if(c.isDirectory()){if(c.name==="node_modules")continue;s(p,u)}else if(c.isFile()){let d=g.extname(c.name);if([".ts",".tsx",".js",".jsx"].includes(d))continue;let f=g.relative(u,p),R=g.join(o,f);S(R,h.readFileSync(p).toString("utf-8")),n.outputFiles++,n.totalSize+=h.statSync(p).size}}}s(r,r)}function Oe(e){if(e===0)return"0 B";let o=["B","KB","MB","GB"],n=1024,r=Math.floor(Math.log(e)/Math.log(n));return`${(e/Math.pow(n,r)).toFixed(2)} ${o[r]}`}var Ge="0.2.0",ne="lytx",Ie="Lyt.js \u6846\u67B6\u547D\u4EE4\u884C\u5DE5\u5177\uFF08\u589E\u5F3A\u7248\uFF09",ee=`
364
+ })();`}var X;try{X=require("esbuild")}catch(e){i.error("\u7F3A\u5C11\u4F9D\u8D56: esbuild"),i.error(""),i.error(" Lyt CLI \u7684\u5F00\u53D1\u670D\u52A1\u5668\u9700\u8981 esbuild \u6765\u5B9E\u65F6\u7F16\u8BD1 TypeScript\u3002"),i.error(""),i.error(" \u8BF7\u6267\u884C\u4EE5\u4E0B\u547D\u4EE4\u5B89\u88C5:"),i.error(` ${t("npm install esbuild --save-dev","brightGreen")}`),i.error(""),i.error(" \u5982\u679C\u60A8\u4F7F\u7528 pnpm:"),i.error(` ${t("pnpm add esbuild -D","brightGreen")}`),i.error(""),process.exit(1)}function Te(e,o){try{return X.transformSync(e,{loader:"ts",target:"es2018",format:"esm",sourcemap:"inline"}).code}catch(n){let r=n instanceof Error?n.message:String(n);return console.error(`[Lyt CLI] \u7F16\u8BD1\u9519\u8BEF ${o||""}:`,r),e}}function De(e,o){var c;let n=((c=e.url)==null?void 0:c.split("?")[0])||"/";n==="/"&&(n="/index.html");let r=M.join(o,n);if(!r.startsWith(o))return{statusCode:403,headers:{"Content-Type":"text/plain; charset=utf-8"},body:"403 Forbidden"};if(!B.existsSync(r)||!B.statSync(r).isFile())return{statusCode:404,headers:{"Content-Type":"text/plain; charset=utf-8"},body:"404 Not Found"};let s=M.extname(r).toLowerCase(),u={".html":"text/html; charset=utf-8",".css":"text/css; charset=utf-8",".js":"application/javascript; charset=utf-8",".mjs":"application/javascript; charset=utf-8",".ts":"application/typescript; charset=utf-8",".json":"application/json; charset=utf-8",".svg":"image/svg+xml",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".ico":"image/x-icon",".woff":"font/woff",".woff2":"font/woff2",".txt":"text/plain; charset=utf-8"}[s]||"application/octet-stream",l=k(r);return(s===".ts"||s===".tsx")&&(l=Te(l,n)),s===".html"&&(l=l.replace("</head>",`<script>${I()}</script>
365
+ </head>`)),{statusCode:200,headers:{"Content-Type":u},body:l}}function N(e={}){let o=e.port||3e3,n=M.resolve(e.root||process.cwd()),r=e.hmr!==!1,s=G(n),a=K.createServer((l,c)=>{let p=De(l,n);c.writeHead(p.statusCode,p.headers),c.end(p.body)});r&&a.on("upgrade",(l,c,p)=>{s.handleUpgrade(l,c,p)}),a.listen(o,()=>{console.log(""),console.log(t(" \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557","brightCyan")),console.log(t(" \u2551","brightCyan")+t(" Lyt \u5F00\u53D1\u670D\u52A1\u5668\u5DF2\u542F\u52A8 ","brightWhite")+t("\u2551","brightCyan")),console.log(t(" \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D","brightCyan")),console.log(""),console.log(` ${t("\u279C","brightGreen")} \u672C\u5730\u8BBF\u95EE: ${t(`http://localhost:${o}`,"brightBlue")}`),console.log(` ${t("\u279C","brightGreen")} \u7F51\u7EDC\u8BBF\u95EE: ${t(`http://127.0.0.1:${o}`,"brightBlue")}`),console.log(` ${t("\u279C","brightGreen")} \u9879\u76EE\u76EE\u5F55: ${t(n,"brightBlue")}`),console.log(` ${t("\u279C","brightGreen")} \u70ED\u66F4\u65B0: ${t(r?"\u5DF2\u5F00\u542F":"\u5DF2\u5173\u95ED",r?"brightGreen":"brightRed")}`),console.log(""),console.log(` ${t("\u6309 Ctrl+C \u505C\u6B62\u670D\u52A1\u5668","dim")}`),console.log("")}),a.on("error",l=>{l.code==="EADDRINUSE"?(i.error(`\u7AEF\u53E3 ${o} \u5DF2\u88AB\u5360\u7528\uFF0C\u8BF7\u4F7F\u7528 --port \u6307\u5B9A\u5176\u4ED6\u7AEF\u53E3`),process.exit(1)):(i.error(`\u670D\u52A1\u5668\u542F\u52A8\u5931\u8D25: ${l.message}`),process.exit(1))});let u=()=>{i.info("\u6B63\u5728\u5173\u95ED\u5F00\u53D1\u670D\u52A1\u5668..."),a.close(()=>{i.success("\u670D\u52A1\u5668\u5DF2\u5173\u95ED"),process.exit(0)}),setTimeout(()=>{i.warn("\u670D\u52A1\u5668\u5173\u95ED\u8D85\u65F6\uFF0C\u5F3A\u5236\u9000\u51FA"),process.exit(1)},5e3)};process.on("SIGINT",u),process.on("SIGTERM",u)}var h=m(require("fs")),g=m(require("path"));var Q;try{Q=require("esbuild")}catch(e){i.error("\u7F3A\u5C11\u4F9D\u8D56: esbuild"),i.error(""),i.error(" Lyt CLI \u7684\u6784\u5EFA\u529F\u80FD\u9700\u8981 esbuild\u3002"),i.error(""),i.error(" \u8BF7\u6267\u884C\u4EE5\u4E0B\u547D\u4EE4\u5B89\u88C5:"),i.error(` ${t("npm install esbuild --save-dev","brightGreen")}`),i.error(""),i.error(" \u5982\u679C\u60A8\u4F7F\u7528 pnpm:"),i.error(` ${t("pnpm add esbuild -D","brightGreen")}`),i.error(""),process.exit(1)}async function Z(e={}){let o=Date.now(),n=g.resolve(e.root||process.cwd()),r=g.resolve(n,e.outDir||"dist"),s=e.entry||"index.html",a=e.minify||!1;i.info("\u5F00\u59CB\u6784\u5EFA\u9879\u76EE..."),i.info(` \u6839\u76EE\u5F55: ${t(n,"brightCyan")}`),i.info(` \u8F93\u51FA\u76EE\u5F55: ${t(r,"brightCyan")}`),i.info(` \u538B\u7F29: ${t(a?"\u5F00\u542F":"\u5173\u95ED",a?"brightGreen":"brightYellow")}`);let u=g.join(n,s);h.existsSync(u)||(i.error(`\u5165\u53E3\u6587\u4EF6\u4E0D\u5B58\u5728: ${u}`),process.exit(1));let l=k(u),c=/<script\s+type="module"\s+src="([^"]+)"\s*><\/script>/g,p,d=[];for(;(p=c.exec(l))!==null;)d.push(p[1]);d.length===0&&i.warn("\u672A\u5728\u5165\u53E3 HTML \u4E2D\u627E\u5230\u6A21\u5757\u811A\u672C\u5F15\u7528");let f={inputFiles:0,outputFiles:0,totalSize:0,buildTime:0};$(r),$(g.join(r,"assets"));for(let x of d){let R=g.join(n,x);if(!h.existsSync(R)){i.warn(`\u811A\u672C\u6587\u4EF6\u4E0D\u5B58\u5728: ${x}`);continue}i.info(`\u6B63\u5728\u6253\u5305: ${t(x,"brightYellow")}`);let H=`${g.basename(x,g.extname(x))}.bundle.js`,C=g.join(r,"assets",H);try{await Q.build({entryPoints:[R],bundle:!0,minify:a,target:"es2018",format:"esm",outfile:C,sourcemap:!0,external:A=>A.startsWith("@lytjs/"),drop:a?["console"]:[],metafile:!0});let v=h.readFileSync(C,"utf-8");f.totalSize+=Buffer.byteLength(v,"utf-8"),f.outputFiles++;let w=C+".map";if(h.existsSync(w)){let A=h.readFileSync(w,"utf-8");f.totalSize+=Buffer.byteLength(A,"utf-8"),f.outputFiles++}l=l.replace(`<script type="module" src="${x}"></script>`,`<script src="/assets/${H}"></script>`),f.inputFiles++}catch(v){let w=v instanceof Error?v.message:String(v);i.error(`\u6253\u5305\u5931\u8D25 ${x}: ${w}`),process.exit(1)}}Le(n,r,f);let P=g.join(r,"index.html");S(P,l),f.outputFiles++,f.totalSize+=Buffer.byteLength(l,"utf-8"),f.buildTime=Date.now()-o,console.log(""),i.success("\u6784\u5EFA\u5B8C\u6210\uFF01"),console.log(""),console.log(` ${t("\u8F93\u5165\u6587\u4EF6:","brightWhite")} ${f.inputFiles} \u4E2A`),console.log(` ${t("\u8F93\u51FA\u6587\u4EF6:","brightWhite")} ${f.outputFiles} \u4E2A`),console.log(` ${t("\u603B\u5927\u5C0F:","brightWhite")} ${Oe(f.totalSize)}`),console.log(` ${t("\u6784\u5EFA\u8017\u65F6:","brightWhite")} ${f.buildTime}ms`),console.log(` ${t("\u8F93\u51FA\u76EE\u5F55:","brightWhite")} ${t(r,"brightCyan")}`),console.log("")}function Le(e,o,n){let r=g.join(e,"src");if(!h.existsSync(r))return;function s(a,u){let l=h.readdirSync(a,{withFileTypes:!0});for(let c of l){let p=g.join(a,c.name);if(c.isDirectory()){if(c.name==="node_modules")continue;s(p,u)}else if(c.isFile()){let d=g.extname(c.name);if([".ts",".tsx",".js",".jsx"].includes(d))continue;let f=g.relative(u,p),P=g.join(o,f);S(P,h.readFileSync(p).toString("utf-8")),n.outputFiles++,n.totalSize+=h.statSync(p).size}}}s(r,r)}function Oe(e){if(e===0)return"0 B";let o=["B","KB","MB","GB"],n=1024,r=Math.floor(Math.log(e)/Math.log(n));return`${(e/Math.pow(n,r)).toFixed(2)} ${o[r]}`}var Ge="0.2.0",ne="lytx",Ie="Lyt.js \u6846\u67B6\u547D\u4EE4\u884C\u5DE5\u5177\uFF08\u589E\u5F3A\u7248\uFF09",ee=`
366
366
  ${t(ne,"brightCyan")} - ${Ie}
367
367
 
368
368
  ${t("\u7528\u6CD5:","brightGreen")}
package/dist/index.mjs CHANGED
@@ -11,7 +11,7 @@ var N=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Prox
11
11
  <script type="module" src="/src/main.ts"></script>
12
12
  </body>
13
13
  </html>
14
- `}function re(){return`import { createApp } from 'lyt';
14
+ `}function re(){return`import { createApp } from '@lytjs/lytjs';
15
15
  import App from './App';
16
16
 
17
17
  // \u521B\u5EFA\u5E94\u7528\u5B9E\u4F8B
@@ -19,7 +19,7 @@ const app = createApp(App);
19
19
 
20
20
  // \u5C06\u5E94\u7528\u6302\u8F7D\u5230 #app \u5143\u7D20
21
21
  app.mount('#app');
22
- `}function se(){return`import { defineComponent } from 'lyt';
22
+ `}function se(){return`import { defineComponent } from '@lytjs/lytjs';
23
23
 
24
24
  // \u5B9A\u4E49\u6839\u7EC4\u4EF6
25
25
  const App = defineComponent({
@@ -75,7 +75,7 @@ body {
75
75
  font-size: 1.2rem;
76
76
  color: #666;
77
77
  }
78
- `}function ae(e){return JSON.stringify({name:e,version:"0.1.0",private:!0,type:"module",scripts:{dev:"lyt dev",build:"lyt build",preview:"lyt preview"},dependencies:{lyt:"latest"},devDependencies:{typescript:"^5.0.0"}},null,2)+`
78
+ `}function ae(e){return JSON.stringify({name:e,version:"0.1.0",private:!0,type:"module",scripts:{dev:"lyt dev",build:"lyt build",preview:"lyt preview"},dependencies:{"@lytjs/lytjs":"latest"},devDependencies:{typescript:"^5.0.0"}},null,2)+`
79
79
  `}function le(){return JSON.stringify({compilerOptions:{target:"ES2020",module:"ESNext",moduleResolution:"bundler",strict:!0,jsx:"preserve",resolveJsonModule:!0,isolatedModules:!0,esModuleInterop:!0,lib:["ES2020","DOM","DOM.Iterable"],skipLibCheck:!0,noEmit:!0,paths:{"@/*":["./src/*"]}},include:["src/**/*.ts","src/**/*.tsx"],exclude:["node_modules","dist"]},null,2)+`
80
80
  `}function ce(){return`# \u4F9D\u8D56
81
81
  node_modules/
@@ -100,7 +100,7 @@ Thumbs.db
100
100
  # \u65E5\u5FD7
101
101
  *.log
102
102
  npm-debug.log*
103
- `}async function Y(e,o={}){let n=o.template||"spa",r=F.resolve(process.cwd(),e);s.info(`\u6B63\u5728\u521B\u5EFA Lyt \u9879\u76EE: ${t(e,"brightCyan")}`),s.info(`\u4F7F\u7528\u6A21\u677F: ${t(n,"brightCyan")}`),A(r)&&(s.error(`\u76EE\u5F55 "${e}" \u5DF2\u5B58\u5728\uFF0C\u8BF7\u9009\u62E9\u5176\u4ED6\u540D\u79F0\u6216\u5220\u9664\u5DF2\u6709\u76EE\u5F55`),process.exit(1)),v(r);let i=[{filePath:"index.html",content:ne()},{filePath:"src/main.ts",content:re()},{filePath:"src/App.ts",content:se()},{filePath:"src/style.css",content:ie()},{filePath:"package.json",content:ae(e)},{filePath:"tsconfig.json",content:le()},{filePath:".gitignore",content:ce()}];for(let a of i){let u=F.join(r,a.filePath);w(u,a.content),s.success(` \u521B\u5EFA ${a.filePath}`)}console.log(""),s.success(`\u9879\u76EE ${t(e,"brightCyan")} \u521B\u5EFA\u6210\u529F\uFF01`),console.log(""),console.log(" \u8BF7\u6267\u884C\u4EE5\u4E0B\u547D\u4EE4\u542F\u52A8\u9879\u76EE\uFF1A"),console.log(""),console.log(` ${t("cd","brightGreen")} ${e}`),console.log(` ${t("npm install","brightGreen")}`),console.log(` ${t("npm run dev","brightGreen")}`),console.log("")}import*as k from"path";function pe(e){let o={name:e.name,version:"0.1.0",private:!0,type:"module",scripts:{dev:"lytx dev",build:"lytx build",preview:"lytx preview"},dependencies:{lyt:"^2.0.0"}};return e.ts&&(o.devDependencies={typescript:"^5.0.0"}),e.eslint&&(o.devDependencies=o.devDependencies||{},o.devDependencies.eslint="^8.0.0",o.scripts=o.scripts||{},o.scripts.lint="eslint src --ext .ts,.js"),e.router&&(o.dependencies["@lytjs/router"]="^2.0.0"),e.store&&(o.dependencies["@lytjs/store"]="^2.0.0"),JSON.stringify(o,null,2)+`
103
+ `}async function Y(e,o={}){let n=o.template||"spa",r=F.resolve(process.cwd(),e);s.info(`\u6B63\u5728\u521B\u5EFA Lyt \u9879\u76EE: ${t(e,"brightCyan")}`),s.info(`\u4F7F\u7528\u6A21\u677F: ${t(n,"brightCyan")}`),A(r)&&(s.error(`\u76EE\u5F55 "${e}" \u5DF2\u5B58\u5728\uFF0C\u8BF7\u9009\u62E9\u5176\u4ED6\u540D\u79F0\u6216\u5220\u9664\u5DF2\u6709\u76EE\u5F55`),process.exit(1)),v(r);let i=[{filePath:"index.html",content:ne()},{filePath:"src/main.ts",content:re()},{filePath:"src/App.ts",content:se()},{filePath:"src/style.css",content:ie()},{filePath:"package.json",content:ae(e)},{filePath:"tsconfig.json",content:le()},{filePath:".gitignore",content:ce()}];for(let a of i){let u=F.join(r,a.filePath);w(u,a.content),s.success(` \u521B\u5EFA ${a.filePath}`)}console.log(""),s.success(`\u9879\u76EE ${t(e,"brightCyan")} \u521B\u5EFA\u6210\u529F\uFF01`),console.log(""),console.log(" \u8BF7\u6267\u884C\u4EE5\u4E0B\u547D\u4EE4\u542F\u52A8\u9879\u76EE\uFF1A"),console.log(""),console.log(` ${t("cd","brightGreen")} ${e}`),console.log(` ${t("npm install","brightGreen")}`),console.log(` ${t("npm run dev","brightGreen")}`),console.log("")}import*as k from"path";function pe(e){let o={name:e.name,version:"0.1.0",private:!0,type:"module",scripts:{dev:"lytx dev",build:"lytx build",preview:"lytx preview"},dependencies:{"@lytjs/lytjs":"latest"}};return e.ts&&(o.devDependencies={typescript:"^5.0.0"}),e.eslint&&(o.devDependencies=o.devDependencies||{},o.devDependencies.eslint="^8.0.0",o.scripts=o.scripts||{},o.scripts.lint="eslint src --ext .ts,.js"),e.router&&(o.dependencies["@lytjs/router"]="latest"),e.store&&(o.dependencies["@lytjs/store"]="latest"),JSON.stringify(o,null,2)+`
104
104
  `}function ue(e){let o={compilerOptions:{target:"ES2020",module:"ESNext",moduleResolution:"bundler",strict:!0,jsx:"preserve",resolveJsonModule:!0,isolatedModules:!0,esModuleInterop:!0,lib:["ES2020","DOM","DOM.Iterable"],skipLibCheck:!0,noEmit:!0,paths:{"@/*":["./src/*"]}},include:["src/**/*.ts","src/**/*.tsx"],exclude:["node_modules","dist"]};return e.template==="ssr"&&(o.compilerOptions.types=["node"]),JSON.stringify(o,null,2)+`
105
105
  `}function de(e){let o=e.ts?".ts":".js";return`<!DOCTYPE html>
106
106
  <html lang="zh-CN">
@@ -115,8 +115,8 @@ npm-debug.log*
115
115
  <script type="module" src="/src/main${o}"></script>
116
116
  </body>
117
117
  </html>
118
- `}function fe(e){let o=["// Lytx \u914D\u7F6E\u6587\u4EF6","import { defineConfig } from 'lyt'","","export default defineConfig({"," // \u6784\u5EFA\u6A21\u5F0F",` mode: '${e.template}',`];return e.router&&(o.push(" // \u8DEF\u7531\u914D\u7F6E"),o.push(" router: {"),o.push(" historyMode: true,"),o.push(" },")),e.store&&(o.push(" // \u72B6\u6001\u7BA1\u7406\u914D\u7F6E"),o.push(" store: {"),o.push(" strict: true,"),o.push(" },")),o.push("})"),o.push(""),o.join(`
119
- `)}function ge(e){let o=e.ts?".ts":".js",n=["import { createApp } from 'lyt'","import App from './App.lyt'","import './styles/main.css'"];return e.router&&n.push("import { router } from './router'"),e.store&&n.push("import { store } from './store'"),n.push(""),n.push("// \u521B\u5EFA\u5E94\u7528\u5B9E\u4F8B"),n.push("const app = createApp(App)"),e.router&&n.push("app.use(router)"),e.store&&n.push("app.use(store)"),n.push(""),n.push("// \u5C06\u5E94\u7528\u6302\u8F7D\u5230 #app \u5143\u7D20"),n.push("app.mount('#app')"),n.join(`
118
+ `}function fe(e){let o=["// Lytx \u914D\u7F6E\u6587\u4EF6","import { defineConfig } from '@lytjs/lytjs'","","export default defineConfig({"," // \u6784\u5EFA\u6A21\u5F0F",` mode: '${e.template}',`];return e.router&&(o.push(" // \u8DEF\u7531\u914D\u7F6E"),o.push(" router: {"),o.push(" historyMode: true,"),o.push(" },")),e.store&&(o.push(" // \u72B6\u6001\u7BA1\u7406\u914D\u7F6E"),o.push(" store: {"),o.push(" strict: true,"),o.push(" },")),o.push("})"),o.push(""),o.join(`
119
+ `)}function ge(e){let o=e.ts?".ts":".js",n=["import { createApp } from '@lytjs/lytjs'","import App from './App.lyt'","import './styles/main.css'"];return e.router&&n.push("import { router } from './router'"),e.store&&n.push("import { store } from './store'"),n.push(""),n.push("// \u521B\u5EFA\u5E94\u7528\u5B9E\u4F8B"),n.push("const app = createApp(App)"),e.router&&n.push("app.use(router)"),e.store&&n.push("app.use(store)"),n.push(""),n.push("// \u5C06\u5E94\u7528\u6302\u8F7D\u5230 #app \u5143\u7D20"),n.push("app.mount('#app')"),n.join(`
120
120
  `)+`
121
121
  `}function me(){return`<template>
122
122
  <div class="app">
@@ -129,7 +129,7 @@ npm-debug.log*
129
129
  </template>
130
130
 
131
131
  <script lang="ts">
132
- import { defineComponent } from 'lyt'
132
+ import { defineComponent } from '@lytjs/lytjs'
133
133
  import Header from './components/Header'
134
134
 
135
135
  export default defineComponent({
@@ -146,7 +146,7 @@ export default defineComponent({
146
146
  padding: 20px;
147
147
  }
148
148
  </style>
149
- `}function he(){return`import { defineComponent } from 'lyt'
149
+ `}function he(){return`import { defineComponent } from '@lytjs/lytjs'
150
150
 
151
151
  export default defineComponent({
152
152
  name: 'HomePage',
@@ -158,7 +158,7 @@ export default defineComponent({
158
158
  </div>
159
159
  \`,
160
160
  })
161
- `}function ye(){return`import { defineComponent } from 'lyt'
161
+ `}function ye(){return`import { defineComponent } from '@lytjs/lytjs'
162
162
 
163
163
  export default defineComponent({
164
164
  name: 'AboutPage',
@@ -170,7 +170,7 @@ export default defineComponent({
170
170
  </div>
171
171
  \`,
172
172
  })
173
- `}function be(){return`import { defineComponent } from 'lyt'
173
+ `}function be(){return`import { defineComponent } from '@lytjs/lytjs'
174
174
 
175
175
  export default defineComponent({
176
176
  name: 'Header',
@@ -258,12 +258,12 @@ a:hover {
258
258
  <text x="16" y="22" text-anchor="middle" fill="white" font-size="18" font-weight="bold">L</text>
259
259
  </svg>
260
260
  `}function Se(){return JSON.stringify({root:!0,env:{browser:!0,es2021:!0,node:!0},extends:["eslint:recommended"],parserOptions:{ecmaVersion:"latest",sourceType:"module"},rules:{"no-unused-vars":"warn","no-console":"warn"}},null,2)+`
261
- `}async function O(e){let{name:o,template:n,ts:r,router:i,store:a,eslint:u}=e,l=k.resolve(process.cwd(),o);if(s.info(`\u6B63\u5728\u521B\u5EFA Lyt \u9879\u76EE: ${t(o,"brightCyan")}`),s.info(`\u4F7F\u7528\u6A21\u677F: ${t(n,"brightCyan")}`),A(l))throw s.error(`\u76EE\u5F55 "${o}" \u5DF2\u5B58\u5728\uFF0C\u8BF7\u9009\u62E9\u5176\u4ED6\u540D\u79F0\u6216\u5220\u9664\u5DF2\u6709\u76EE\u5F55`),new Error(`Directory "${o}" already exists`);v(l);let c=[{filePath:"package.json",content:pe(e)},{filePath:"index.html",content:de(e)},{filePath:"lytx.config.ts",content:fe(e)},{filePath:"src/main.ts",content:ge(e)},{filePath:"src/App.lyt",content:me()},{filePath:"src/pages/index.ts",content:he()},{filePath:"src/pages/about.ts",content:ye()},{filePath:"src/components/Header.ts",content:be()},{filePath:"src/styles/main.css",content:$e()},{filePath:"public/favicon.svg",content:we()}];r&&c.push({filePath:"tsconfig.json",content:ue(e)}),i&&c.push({filePath:"src/router/index.ts",content:xe()}),a&&c.push({filePath:"src/store/index.ts",content:ve()}),u&&c.push({filePath:".eslintrc.json",content:Se()});for(let p of c){let d=k.join(l,p.filePath);w(d,p.content),s.success(` \u521B\u5EFA ${p.filePath}`)}console.log(""),s.success(`\u9879\u76EE ${t(o,"brightCyan")} \u521B\u5EFA\u6210\u529F\uFF01`),console.log(""),console.log(" \u8BF7\u6267\u884C\u4EE5\u4E0B\u547D\u4EE4\u542F\u52A8\u9879\u76EE\uFF1A"),console.log(""),console.log(` ${t("cd","brightGreen")} ${o}`),console.log(` ${t("npm install","brightGreen")}`),console.log(` ${t("npm run dev","brightGreen")}`),console.log("")}import*as J from"fs";import*as D from"fs";import*as M from"path";import*as z from"http";import*as C from"fs";import*as y from"path";import*as _ from"crypto";var T=class{constructor(){this.clients=[]}handleUpgrade(o,n,r){let i=o.headers["sec-websocket-key"];if(!i){n.destroy();return}let a=_.createHash("sha1").update(i+"258EAFA5-E914-47DA-95CA-C5AB0DC85B11").digest("base64");n.write(`HTTP/1.1 101 Switching Protocols\r
261
+ `}async function O(e){let{name:o,template:n,ts:r,router:i,store:a,eslint:u}=e,l=k.resolve(process.cwd(),o);if(s.info(`\u6B63\u5728\u521B\u5EFA Lyt \u9879\u76EE: ${t(o,"brightCyan")}`),s.info(`\u4F7F\u7528\u6A21\u677F: ${t(n,"brightCyan")}`),A(l))throw s.error(`\u76EE\u5F55 "${o}" \u5DF2\u5B58\u5728\uFF0C\u8BF7\u9009\u62E9\u5176\u4ED6\u540D\u79F0\u6216\u5220\u9664\u5DF2\u6709\u76EE\u5F55`),new Error(`Directory "${o}" already exists`);v(l);let c=[{filePath:"package.json",content:pe(e)},{filePath:"index.html",content:de(e)},{filePath:"lytx.config.ts",content:fe(e)},{filePath:"src/main.ts",content:ge(e)},{filePath:"src/App.lyt",content:me()},{filePath:"src/pages/index.ts",content:he()},{filePath:"src/pages/about.ts",content:ye()},{filePath:"src/components/Header.ts",content:be()},{filePath:"src/styles/main.css",content:$e()},{filePath:"public/favicon.svg",content:we()}];r&&c.push({filePath:"tsconfig.json",content:ue(e)}),i&&c.push({filePath:"src/router/index.ts",content:xe()}),a&&c.push({filePath:"src/store/index.ts",content:ve()}),u&&c.push({filePath:".eslintrc.json",content:Se()});for(let p of c){let d=k.join(l,p.filePath);w(d,p.content),s.success(` \u521B\u5EFA ${p.filePath}`)}console.log(""),s.success(`\u9879\u76EE ${t(o,"brightCyan")} \u521B\u5EFA\u6210\u529F\uFF01`),console.log(""),console.log(" \u8BF7\u6267\u884C\u4EE5\u4E0B\u547D\u4EE4\u542F\u52A8\u9879\u76EE\uFF1A"),console.log(""),console.log(` ${t("cd","brightGreen")} ${o}`),console.log(` ${t("npm install","brightGreen")}`),console.log(` ${t("npm run dev","brightGreen")}`),console.log("")}import*as J from"fs";import*as D from"fs";import*as j from"path";import*as z from"http";import*as C from"fs";import*as y from"path";import*as _ from"crypto";var T=class{constructor(){this.clients=[]}handleUpgrade(o,n,r){let i=o.headers["sec-websocket-key"];if(!i){n.destroy();return}let a=_.createHash("sha1").update(i+"258EAFA5-E914-47DA-95CA-C5AB0DC85B11").digest("base64");n.write(`HTTP/1.1 101 Switching Protocols\r
262
262
  Upgrade: websocket\r
263
263
  Connection: Upgrade\r
264
264
  Sec-WebSocket-Accept: ${a}\r
265
265
  \r
266
- `);let u={socket:n,isAlive:!0};n.on("close",()=>{this.clients=this.clients.filter(l=>l!==u)}),n.on("error",()=>{this.clients=this.clients.filter(l=>l!==u)}),this.clients.push(u)}broadcast(o){let n=[];for(let r of this.clients)try{if(!r.isAlive){n.push(r);continue}let i=Buffer.from(o,"utf-8"),a=this.createFrame(129,i);r.socket.write(a)}catch(i){n.push(r)}for(let r of n){this.clients=this.clients.filter(i=>i!==r);try{r.socket.destroy()}catch(i){}}}createFrame(o,n){let r=n.length,i;r<126?i=2:r<65536?i=4:i=10;let a=Buffer.alloc(i+r);return a[0]=o,r<126?a[1]=r:r<65536?(a[1]=126,a.writeUInt16BE(r,2)):(a[1]=127,a.writeUInt32BE(0,2),a.writeUInt32BE(r,6)),n.copy(a,i),a}getClientCount(){return this.clients.length}closeAll(){for(let o of this.clients)try{o.socket.destroy()}catch(n){}this.clients=[]}};function G(e){let o=new T,n=[],r=[],i=null,a=!1;function u(c){let p=y.extname(c).toLowerCase();if(p===".css")return"css";let d=y.basename(c);return d.startsWith("lytx.config")||d==="tsconfig.json"||d==="package.json"?"reload":p===".ts"||p===".tsx"||p===".lyt"||p===".js"||p===".jsx"?"update":"reload"}function l(c){try{let p=C.readdirSync(c,{withFileTypes:!0});for(let d of p){let f=y.join(c,d.name);if(d.isDirectory()){if(d.name==="node_modules"||d.name===".git"||d.name==="dist")continue;l(f)}else if(d.isFile()){let P=y.extname(d.name).toLowerCase();if(new Set([".ts",".tsx",".js",".jsx",".css",".html",".json",".lyt"]).has(P))try{let R=C.watch(f,{persistent:!1},U=>{if(U==="change"){let j=y.relative(e,f);for(let $ of n)try{$(j)}catch(H){}let S=u(f),x={type:S,path:`/${j}`};if(S==="css")try{x.content=C.readFileSync(f,"utf-8")}catch($){}o.broadcast(JSON.stringify(x))}});r.push(R)}catch(R){}}}}catch(p){}}return{start(c){a||(a=!0,i=z.createServer((p,d)=>{d.writeHead(426,{"Content-Type":"text/plain"}),d.end("Upgrade Required")}),i.on("upgrade",(p,d,f)=>{o.handleUpgrade(p,d,f)}),i.listen(c,()=>{}),l(e))},stop(){a=!1;for(let c of r)try{c.close()}catch(p){}if(r.length=0,o.closeAll(),i){try{i.close()}catch(c){}i=null}},onFileChange(c){n.push(c)},notifyClient(c){o.broadcast(JSON.stringify(c))}}}function Ce(e){let o=new T;return e.on("upgrade",(n,r,i)=>{o.handleUpgrade(n,r,i)}),{broadcast(n){o.broadcast(n)},getClientCount(){return o.getClientCount()}}}function I(){return`(function() {
266
+ `);let u={socket:n,isAlive:!0};n.on("close",()=>{this.clients=this.clients.filter(l=>l!==u)}),n.on("error",()=>{this.clients=this.clients.filter(l=>l!==u)}),this.clients.push(u)}broadcast(o){let n=[];for(let r of this.clients)try{if(!r.isAlive){n.push(r);continue}let i=Buffer.from(o,"utf-8"),a=this.createFrame(129,i);r.socket.write(a)}catch(i){n.push(r)}for(let r of n){this.clients=this.clients.filter(i=>i!==r);try{r.socket.destroy()}catch(i){}}}createFrame(o,n){let r=n.length,i;r<126?i=2:r<65536?i=4:i=10;let a=Buffer.alloc(i+r);return a[0]=o,r<126?a[1]=r:r<65536?(a[1]=126,a.writeUInt16BE(r,2)):(a[1]=127,a.writeUInt32BE(0,2),a.writeUInt32BE(r,6)),n.copy(a,i),a}getClientCount(){return this.clients.length}closeAll(){for(let o of this.clients)try{o.socket.destroy()}catch(n){}this.clients=[]}};function G(e){let o=new T,n=[],r=[],i=null,a=!1;function u(c){let p=y.extname(c).toLowerCase();if(p===".css")return"css";let d=y.basename(c);return d.startsWith("lytx.config")||d==="tsconfig.json"||d==="package.json"?"reload":p===".ts"||p===".tsx"||p===".lyt"||p===".js"||p===".jsx"?"update":"reload"}function l(c){try{let p=C.readdirSync(c,{withFileTypes:!0});for(let d of p){let f=y.join(c,d.name);if(d.isDirectory()){if(d.name==="node_modules"||d.name===".git"||d.name==="dist")continue;l(f)}else if(d.isFile()){let M=y.extname(d.name).toLowerCase();if(new Set([".ts",".tsx",".js",".jsx",".css",".html",".json",".lyt"]).has(M))try{let P=C.watch(f,{persistent:!1},U=>{if(U==="change"){let R=y.relative(e,f);for(let $ of n)try{$(R)}catch(H){}let S=u(f),x={type:S,path:`/${R}`};if(S==="css")try{x.content=C.readFileSync(f,"utf-8")}catch($){}o.broadcast(JSON.stringify(x))}});r.push(P)}catch(P){}}}}catch(p){}}return{start(c){a||(a=!0,i=z.createServer((p,d)=>{d.writeHead(426,{"Content-Type":"text/plain"}),d.end("Upgrade Required")}),i.on("upgrade",(p,d,f)=>{o.handleUpgrade(p,d,f)}),i.listen(c,()=>{}),l(e))},stop(){a=!1;for(let c of r)try{c.close()}catch(p){}if(r.length=0,o.closeAll(),i){try{i.close()}catch(c){}i=null}},onFileChange(c){n.push(c)},notifyClient(c){o.broadcast(JSON.stringify(c))}}}function Ce(e){let o=new T;return e.on("upgrade",(n,r,i)=>{o.handleUpgrade(n,r,i)}),{broadcast(n){o.broadcast(n)},getClientCount(){return o.getClientCount()}}}function I(){return`(function() {
267
267
  'use strict';
268
268
 
269
269
  var ws = null;
@@ -361,8 +361,8 @@ Sec-WebSocket-Accept: ${a}\r
361
361
 
362
362
  // \u542F\u52A8\u8FDE\u63A5
363
363
  connect();
364
- })();`}var q;try{q=N("esbuild")}catch(e){s.error("\u7F3A\u5C11\u4F9D\u8D56: esbuild"),s.error(""),s.error(" Lyt CLI \u7684\u5F00\u53D1\u670D\u52A1\u5668\u9700\u8981 esbuild \u6765\u5B9E\u65F6\u7F16\u8BD1 TypeScript\u3002"),s.error(""),s.error(" \u8BF7\u6267\u884C\u4EE5\u4E0B\u547D\u4EE4\u5B89\u88C5:"),s.error(` ${t("npm install esbuild --save-dev","brightGreen")}`),s.error(""),s.error(" \u5982\u679C\u60A8\u4F7F\u7528 pnpm:"),s.error(` ${t("pnpm add esbuild -D","brightGreen")}`),s.error(""),process.exit(1)}function Me(e,o){try{return q.transformSync(e,{loader:"ts",target:"es2018",format:"esm",sourcemap:"inline"}).code}catch(n){let r=n instanceof Error?n.message:String(n);return console.error(`[Lyt CLI] \u7F16\u8BD1\u9519\u8BEF ${o||""}:`,r),e}}function Pe(e,o){var c;let n=((c=e.url)==null?void 0:c.split("?")[0])||"/";n==="/"&&(n="/index.html");let r=M.join(o,n);if(!r.startsWith(o))return{statusCode:403,headers:{"Content-Type":"text/plain; charset=utf-8"},body:"403 Forbidden"};if(!D.existsSync(r)||!D.statSync(r).isFile())return{statusCode:404,headers:{"Content-Type":"text/plain; charset=utf-8"},body:"404 Not Found"};let i=M.extname(r).toLowerCase(),u={".html":"text/html; charset=utf-8",".css":"text/css; charset=utf-8",".js":"application/javascript; charset=utf-8",".mjs":"application/javascript; charset=utf-8",".ts":"application/typescript; charset=utf-8",".json":"application/json; charset=utf-8",".svg":"image/svg+xml",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".ico":"image/x-icon",".woff":"font/woff",".woff2":"font/woff2",".txt":"text/plain; charset=utf-8"}[i]||"application/octet-stream",l=E(r);return(i===".ts"||i===".tsx")&&(l=Me(l,n)),i===".html"&&(l=l.replace("</head>",`<script>${I()}</script>
365
- </head>`)),{statusCode:200,headers:{"Content-Type":u},body:l}}function B(e={}){let o=e.port||3e3,n=M.resolve(e.root||process.cwd()),r=e.hmr!==!1,i=G(n),a=J.createServer((l,c)=>{let p=Pe(l,n);c.writeHead(p.statusCode,p.headers),c.end(p.body)});r&&a.on("upgrade",(l,c,p)=>{i.handleUpgrade(l,c,p)}),a.listen(o,()=>{console.log(""),console.log(t(" \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557","brightCyan")),console.log(t(" \u2551","brightCyan")+t(" Lyt \u5F00\u53D1\u670D\u52A1\u5668\u5DF2\u542F\u52A8 ","brightWhite")+t("\u2551","brightCyan")),console.log(t(" \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D","brightCyan")),console.log(""),console.log(` ${t("\u279C","brightGreen")} \u672C\u5730\u8BBF\u95EE: ${t(`http://localhost:${o}`,"brightBlue")}`),console.log(` ${t("\u279C","brightGreen")} \u7F51\u7EDC\u8BBF\u95EE: ${t(`http://127.0.0.1:${o}`,"brightBlue")}`),console.log(` ${t("\u279C","brightGreen")} \u9879\u76EE\u76EE\u5F55: ${t(n,"brightBlue")}`),console.log(` ${t("\u279C","brightGreen")} \u70ED\u66F4\u65B0: ${t(r?"\u5DF2\u5F00\u542F":"\u5DF2\u5173\u95ED",r?"brightGreen":"brightRed")}`),console.log(""),console.log(` ${t("\u6309 Ctrl+C \u505C\u6B62\u670D\u52A1\u5668","dim")}`),console.log("")}),a.on("error",l=>{l.code==="EADDRINUSE"?(s.error(`\u7AEF\u53E3 ${o} \u5DF2\u88AB\u5360\u7528\uFF0C\u8BF7\u4F7F\u7528 --port \u6307\u5B9A\u5176\u4ED6\u7AEF\u53E3`),process.exit(1)):(s.error(`\u670D\u52A1\u5668\u542F\u52A8\u5931\u8D25: ${l.message}`),process.exit(1))});let u=()=>{s.info("\u6B63\u5728\u5173\u95ED\u5F00\u53D1\u670D\u52A1\u5668..."),a.close(()=>{s.success("\u670D\u52A1\u5668\u5DF2\u5173\u95ED"),process.exit(0)}),setTimeout(()=>{s.warn("\u670D\u52A1\u5668\u5173\u95ED\u8D85\u65F6\uFF0C\u5F3A\u5236\u9000\u51FA"),process.exit(1)},5e3)};process.on("SIGINT",u),process.on("SIGTERM",u)}import*as m from"fs";import*as g from"path";var V;try{V=N("esbuild")}catch(e){s.error("\u7F3A\u5C11\u4F9D\u8D56: esbuild"),s.error(""),s.error(" Lyt CLI \u7684\u6784\u5EFA\u529F\u80FD\u9700\u8981 esbuild\u3002"),s.error(""),s.error(" \u8BF7\u6267\u884C\u4EE5\u4E0B\u547D\u4EE4\u5B89\u88C5:"),s.error(` ${t("npm install esbuild --save-dev","brightGreen")}`),s.error(""),s.error(" \u5982\u679C\u60A8\u4F7F\u7528 pnpm:"),s.error(` ${t("pnpm add esbuild -D","brightGreen")}`),s.error(""),process.exit(1)}async function K(e={}){let o=Date.now(),n=g.resolve(e.root||process.cwd()),r=g.resolve(n,e.outDir||"dist"),i=e.entry||"index.html",a=e.minify||!1;s.info("\u5F00\u59CB\u6784\u5EFA\u9879\u76EE..."),s.info(` \u6839\u76EE\u5F55: ${t(n,"brightCyan")}`),s.info(` \u8F93\u51FA\u76EE\u5F55: ${t(r,"brightCyan")}`),s.info(` \u538B\u7F29: ${t(a?"\u5F00\u542F":"\u5173\u95ED",a?"brightGreen":"brightYellow")}`);let u=g.join(n,i);m.existsSync(u)||(s.error(`\u5165\u53E3\u6587\u4EF6\u4E0D\u5B58\u5728: ${u}`),process.exit(1));let l=E(u),c=/<script\s+type="module"\s+src="([^"]+)"\s*><\/script>/g,p,d=[];for(;(p=c.exec(l))!==null;)d.push(p[1]);d.length===0&&s.warn("\u672A\u5728\u5165\u53E3 HTML \u4E2D\u627E\u5230\u6A21\u5757\u811A\u672C\u5F15\u7528");let f={inputFiles:0,outputFiles:0,totalSize:0,buildTime:0};v(r),v(g.join(r,"assets"));for(let b of d){let R=g.join(n,b);if(!m.existsSync(R)){s.warn(`\u811A\u672C\u6587\u4EF6\u4E0D\u5B58\u5728: ${b}`);continue}s.info(`\u6B63\u5728\u6253\u5305: ${t(b,"brightYellow")}`);let j=`${g.basename(b,g.extname(b))}.bundle.js`,S=g.join(r,"assets",j);try{await V.build({entryPoints:[R],bundle:!0,minify:a,target:"es2018",format:"esm",outfile:S,sourcemap:!0,external:H=>H.startsWith("@lytjs/"),drop:a?["console"]:[],metafile:!0});let x=m.readFileSync(S,"utf-8");f.totalSize+=Buffer.byteLength(x,"utf-8"),f.outputFiles++;let $=S+".map";if(m.existsSync($)){let H=m.readFileSync($,"utf-8");f.totalSize+=Buffer.byteLength(H,"utf-8"),f.outputFiles++}l=l.replace(`<script type="module" src="${b}"></script>`,`<script src="/assets/${j}"></script>`),f.inputFiles++}catch(x){let $=x instanceof Error?x.message:String(x);s.error(`\u6253\u5305\u5931\u8D25 ${b}: ${$}`),process.exit(1)}}Re(n,r,f);let P=g.join(r,"index.html");w(P,l),f.outputFiles++,f.totalSize+=Buffer.byteLength(l,"utf-8"),f.buildTime=Date.now()-o,console.log(""),s.success("\u6784\u5EFA\u5B8C\u6210\uFF01"),console.log(""),console.log(` ${t("\u8F93\u5165\u6587\u4EF6:","brightWhite")} ${f.inputFiles} \u4E2A`),console.log(` ${t("\u8F93\u51FA\u6587\u4EF6:","brightWhite")} ${f.outputFiles} \u4E2A`),console.log(` ${t("\u603B\u5927\u5C0F:","brightWhite")} ${je(f.totalSize)}`),console.log(` ${t("\u6784\u5EFA\u8017\u65F6:","brightWhite")} ${f.buildTime}ms`),console.log(` ${t("\u8F93\u51FA\u76EE\u5F55:","brightWhite")} ${t(r,"brightCyan")}`),console.log("")}function Re(e,o,n){let r=g.join(e,"src");if(!m.existsSync(r))return;function i(a,u){let l=m.readdirSync(a,{withFileTypes:!0});for(let c of l){let p=g.join(a,c.name);if(c.isDirectory()){if(c.name==="node_modules")continue;i(p,u)}else if(c.isFile()){let d=g.extname(c.name);if([".ts",".tsx",".js",".jsx"].includes(d))continue;let f=g.relative(u,p),P=g.join(o,f);w(P,m.readFileSync(p).toString("utf-8")),n.outputFiles++,n.totalSize+=m.statSync(p).size}}}i(r,r)}function je(e){if(e===0)return"0 B";let o=["B","KB","MB","GB"],n=1024,r=Math.floor(Math.log(e)/Math.log(n));return`${(e/Math.pow(n,r)).toFixed(2)} ${o[r]}`}var He="0.2.0",ee="lytx",Ae="Lyt.js \u6846\u67B6\u547D\u4EE4\u884C\u5DE5\u5177\uFF08\u589E\u5F3A\u7248\uFF09",X=`
364
+ })();`}var q;try{q=N("esbuild")}catch(e){s.error("\u7F3A\u5C11\u4F9D\u8D56: esbuild"),s.error(""),s.error(" Lyt CLI \u7684\u5F00\u53D1\u670D\u52A1\u5668\u9700\u8981 esbuild \u6765\u5B9E\u65F6\u7F16\u8BD1 TypeScript\u3002"),s.error(""),s.error(" \u8BF7\u6267\u884C\u4EE5\u4E0B\u547D\u4EE4\u5B89\u88C5:"),s.error(` ${t("npm install esbuild --save-dev","brightGreen")}`),s.error(""),s.error(" \u5982\u679C\u60A8\u4F7F\u7528 pnpm:"),s.error(` ${t("pnpm add esbuild -D","brightGreen")}`),s.error(""),process.exit(1)}function je(e,o){try{return q.transformSync(e,{loader:"ts",target:"es2018",format:"esm",sourcemap:"inline"}).code}catch(n){let r=n instanceof Error?n.message:String(n);return console.error(`[Lyt CLI] \u7F16\u8BD1\u9519\u8BEF ${o||""}:`,r),e}}function Me(e,o){var c;let n=((c=e.url)==null?void 0:c.split("?")[0])||"/";n==="/"&&(n="/index.html");let r=j.join(o,n);if(!r.startsWith(o))return{statusCode:403,headers:{"Content-Type":"text/plain; charset=utf-8"},body:"403 Forbidden"};if(!D.existsSync(r)||!D.statSync(r).isFile())return{statusCode:404,headers:{"Content-Type":"text/plain; charset=utf-8"},body:"404 Not Found"};let i=j.extname(r).toLowerCase(),u={".html":"text/html; charset=utf-8",".css":"text/css; charset=utf-8",".js":"application/javascript; charset=utf-8",".mjs":"application/javascript; charset=utf-8",".ts":"application/typescript; charset=utf-8",".json":"application/json; charset=utf-8",".svg":"image/svg+xml",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".ico":"image/x-icon",".woff":"font/woff",".woff2":"font/woff2",".txt":"text/plain; charset=utf-8"}[i]||"application/octet-stream",l=E(r);return(i===".ts"||i===".tsx")&&(l=je(l,n)),i===".html"&&(l=l.replace("</head>",`<script>${I()}</script>
365
+ </head>`)),{statusCode:200,headers:{"Content-Type":u},body:l}}function B(e={}){let o=e.port||3e3,n=j.resolve(e.root||process.cwd()),r=e.hmr!==!1,i=G(n),a=J.createServer((l,c)=>{let p=Me(l,n);c.writeHead(p.statusCode,p.headers),c.end(p.body)});r&&a.on("upgrade",(l,c,p)=>{i.handleUpgrade(l,c,p)}),a.listen(o,()=>{console.log(""),console.log(t(" \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557","brightCyan")),console.log(t(" \u2551","brightCyan")+t(" Lyt \u5F00\u53D1\u670D\u52A1\u5668\u5DF2\u542F\u52A8 ","brightWhite")+t("\u2551","brightCyan")),console.log(t(" \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D","brightCyan")),console.log(""),console.log(` ${t("\u279C","brightGreen")} \u672C\u5730\u8BBF\u95EE: ${t(`http://localhost:${o}`,"brightBlue")}`),console.log(` ${t("\u279C","brightGreen")} \u7F51\u7EDC\u8BBF\u95EE: ${t(`http://127.0.0.1:${o}`,"brightBlue")}`),console.log(` ${t("\u279C","brightGreen")} \u9879\u76EE\u76EE\u5F55: ${t(n,"brightBlue")}`),console.log(` ${t("\u279C","brightGreen")} \u70ED\u66F4\u65B0: ${t(r?"\u5DF2\u5F00\u542F":"\u5DF2\u5173\u95ED",r?"brightGreen":"brightRed")}`),console.log(""),console.log(` ${t("\u6309 Ctrl+C \u505C\u6B62\u670D\u52A1\u5668","dim")}`),console.log("")}),a.on("error",l=>{l.code==="EADDRINUSE"?(s.error(`\u7AEF\u53E3 ${o} \u5DF2\u88AB\u5360\u7528\uFF0C\u8BF7\u4F7F\u7528 --port \u6307\u5B9A\u5176\u4ED6\u7AEF\u53E3`),process.exit(1)):(s.error(`\u670D\u52A1\u5668\u542F\u52A8\u5931\u8D25: ${l.message}`),process.exit(1))});let u=()=>{s.info("\u6B63\u5728\u5173\u95ED\u5F00\u53D1\u670D\u52A1\u5668..."),a.close(()=>{s.success("\u670D\u52A1\u5668\u5DF2\u5173\u95ED"),process.exit(0)}),setTimeout(()=>{s.warn("\u670D\u52A1\u5668\u5173\u95ED\u8D85\u65F6\uFF0C\u5F3A\u5236\u9000\u51FA"),process.exit(1)},5e3)};process.on("SIGINT",u),process.on("SIGTERM",u)}import*as m from"fs";import*as g from"path";var V;try{V=N("esbuild")}catch(e){s.error("\u7F3A\u5C11\u4F9D\u8D56: esbuild"),s.error(""),s.error(" Lyt CLI \u7684\u6784\u5EFA\u529F\u80FD\u9700\u8981 esbuild\u3002"),s.error(""),s.error(" \u8BF7\u6267\u884C\u4EE5\u4E0B\u547D\u4EE4\u5B89\u88C5:"),s.error(` ${t("npm install esbuild --save-dev","brightGreen")}`),s.error(""),s.error(" \u5982\u679C\u60A8\u4F7F\u7528 pnpm:"),s.error(` ${t("pnpm add esbuild -D","brightGreen")}`),s.error(""),process.exit(1)}async function K(e={}){let o=Date.now(),n=g.resolve(e.root||process.cwd()),r=g.resolve(n,e.outDir||"dist"),i=e.entry||"index.html",a=e.minify||!1;s.info("\u5F00\u59CB\u6784\u5EFA\u9879\u76EE..."),s.info(` \u6839\u76EE\u5F55: ${t(n,"brightCyan")}`),s.info(` \u8F93\u51FA\u76EE\u5F55: ${t(r,"brightCyan")}`),s.info(` \u538B\u7F29: ${t(a?"\u5F00\u542F":"\u5173\u95ED",a?"brightGreen":"brightYellow")}`);let u=g.join(n,i);m.existsSync(u)||(s.error(`\u5165\u53E3\u6587\u4EF6\u4E0D\u5B58\u5728: ${u}`),process.exit(1));let l=E(u),c=/<script\s+type="module"\s+src="([^"]+)"\s*><\/script>/g,p,d=[];for(;(p=c.exec(l))!==null;)d.push(p[1]);d.length===0&&s.warn("\u672A\u5728\u5165\u53E3 HTML \u4E2D\u627E\u5230\u6A21\u5757\u811A\u672C\u5F15\u7528");let f={inputFiles:0,outputFiles:0,totalSize:0,buildTime:0};v(r),v(g.join(r,"assets"));for(let b of d){let P=g.join(n,b);if(!m.existsSync(P)){s.warn(`\u811A\u672C\u6587\u4EF6\u4E0D\u5B58\u5728: ${b}`);continue}s.info(`\u6B63\u5728\u6253\u5305: ${t(b,"brightYellow")}`);let R=`${g.basename(b,g.extname(b))}.bundle.js`,S=g.join(r,"assets",R);try{await V.build({entryPoints:[P],bundle:!0,minify:a,target:"es2018",format:"esm",outfile:S,sourcemap:!0,external:H=>H.startsWith("@lytjs/"),drop:a?["console"]:[],metafile:!0});let x=m.readFileSync(S,"utf-8");f.totalSize+=Buffer.byteLength(x,"utf-8"),f.outputFiles++;let $=S+".map";if(m.existsSync($)){let H=m.readFileSync($,"utf-8");f.totalSize+=Buffer.byteLength(H,"utf-8"),f.outputFiles++}l=l.replace(`<script type="module" src="${b}"></script>`,`<script src="/assets/${R}"></script>`),f.inputFiles++}catch(x){let $=x instanceof Error?x.message:String(x);s.error(`\u6253\u5305\u5931\u8D25 ${b}: ${$}`),process.exit(1)}}Pe(n,r,f);let M=g.join(r,"index.html");w(M,l),f.outputFiles++,f.totalSize+=Buffer.byteLength(l,"utf-8"),f.buildTime=Date.now()-o,console.log(""),s.success("\u6784\u5EFA\u5B8C\u6210\uFF01"),console.log(""),console.log(` ${t("\u8F93\u5165\u6587\u4EF6:","brightWhite")} ${f.inputFiles} \u4E2A`),console.log(` ${t("\u8F93\u51FA\u6587\u4EF6:","brightWhite")} ${f.outputFiles} \u4E2A`),console.log(` ${t("\u603B\u5927\u5C0F:","brightWhite")} ${Re(f.totalSize)}`),console.log(` ${t("\u6784\u5EFA\u8017\u65F6:","brightWhite")} ${f.buildTime}ms`),console.log(` ${t("\u8F93\u51FA\u76EE\u5F55:","brightWhite")} ${t(r,"brightCyan")}`),console.log("")}function Pe(e,o,n){let r=g.join(e,"src");if(!m.existsSync(r))return;function i(a,u){let l=m.readdirSync(a,{withFileTypes:!0});for(let c of l){let p=g.join(a,c.name);if(c.isDirectory()){if(c.name==="node_modules")continue;i(p,u)}else if(c.isFile()){let d=g.extname(c.name);if([".ts",".tsx",".js",".jsx"].includes(d))continue;let f=g.relative(u,p),M=g.join(o,f);w(M,m.readFileSync(p).toString("utf-8")),n.outputFiles++,n.totalSize+=m.statSync(p).size}}}i(r,r)}function Re(e){if(e===0)return"0 B";let o=["B","KB","MB","GB"],n=1024,r=Math.floor(Math.log(e)/Math.log(n));return`${(e/Math.pow(n,r)).toFixed(2)} ${o[r]}`}var He="0.2.0",ee="lytx",Ae="Lyt.js \u6846\u67B6\u547D\u4EE4\u884C\u5DE5\u5177\uFF08\u589E\u5F3A\u7248\uFF09",X=`
366
366
  ${t(ee,"brightCyan")} - ${Ae}
367
367
 
368
368
  ${t("\u7528\u6CD5:","brightGreen")}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lytjs/cli",
3
- "version": "3.2.1",
3
+ "version": "3.2.2",
4
4
  "description": "Lyt.js 命令行工具 - 提供项目创建、开发服务器和构建功能",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",