uudev 1.0.0
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/README.md +1 -0
- package/apptemplate/office/.editorconfig +8 -0
- package/apptemplate/office/.gitattributes +1 -0
- package/apptemplate/office/.oxlintrc.json +10 -0
- package/apptemplate/office/.prettierrc.json +6 -0
- package/apptemplate/office/README.md +48 -0
- package/apptemplate/office/env.d.ts +1 -0
- package/apptemplate/office/eslint.config.ts +26 -0
- package/apptemplate/office/index.html +13 -0
- package/apptemplate/office/package-lock.json +5117 -0
- package/apptemplate/office/package.json +49 -0
- package/apptemplate/office/public/app_icon.svg +51 -0
- package/apptemplate/office/public/menifest.json +8 -0
- package/apptemplate/office/public/readme.html +12 -0
- package/apptemplate/office/src/App.vue +11 -0
- package/apptemplate/office/src/main.ts +9 -0
- package/apptemplate/office/src/router/index.ts +19 -0
- package/apptemplate/office/tsconfig.app.json +18 -0
- package/apptemplate/office/tsconfig.json +11 -0
- package/apptemplate/office/tsconfig.node.json +27 -0
- package/apptemplate/office/vite.config.ts +24 -0
- package/main.js +4 -0
- package/package.json +28 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "uuapp-template",
|
|
3
|
+
"appType": "appType",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"description": "在package.json中,开发者可以填写小程序的介绍信息,可以包含一些功能亮点、使用场景或者其他相关信息,帮助用户更好地了解这个小程序的特点和优势。",
|
|
6
|
+
"private": true,
|
|
7
|
+
"author": "uuer",
|
|
8
|
+
"type": "module",
|
|
9
|
+
"scripts": {
|
|
10
|
+
"dev": "vite --port 41260",
|
|
11
|
+
"build": "run-p type-check \"build-only {@}\" --",
|
|
12
|
+
"debug": "uudev debug",
|
|
13
|
+
"publish": "uudev publish",
|
|
14
|
+
"preview": "vite preview",
|
|
15
|
+
"build-only": "vite build",
|
|
16
|
+
"type-check": "vue-tsc --build",
|
|
17
|
+
"lint": "run-s lint:*",
|
|
18
|
+
"lint:oxlint": "oxlint . --fix",
|
|
19
|
+
"lint:eslint": "eslint . --fix --cache",
|
|
20
|
+
"format": "prettier --write --experimental-cli src/"
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"vue": "3.5.30",
|
|
24
|
+
"vue-router": "5.0.3"
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"@tsconfig/node24": "^24.0.4",
|
|
28
|
+
"@types/node": "^24.12.0",
|
|
29
|
+
"@vitejs/plugin-vue": "^6.0.4",
|
|
30
|
+
"@vue/eslint-config-typescript": "^14.7.0",
|
|
31
|
+
"@vue/tsconfig": "^0.9.0",
|
|
32
|
+
"eslint": "^10.0.3",
|
|
33
|
+
"eslint-config-prettier": "^10.1.8",
|
|
34
|
+
"eslint-plugin-oxlint": "~1.51.0",
|
|
35
|
+
"eslint-plugin-vue": "~10.8.0",
|
|
36
|
+
"jiti": "^2.6.1",
|
|
37
|
+
"npm-run-all2": "^8.0.4",
|
|
38
|
+
"oxlint": "~1.51.0",
|
|
39
|
+
"prettier": "3.8.1",
|
|
40
|
+
"typescript": "~5.9.3",
|
|
41
|
+
"uudev": "latest",
|
|
42
|
+
"vite": "^7.3.1",
|
|
43
|
+
"vite-plugin-vue-devtools": "^8.0.7",
|
|
44
|
+
"vue-tsc": "^3.2.5"
|
|
45
|
+
},
|
|
46
|
+
"engines": {
|
|
47
|
+
"node": ">=24.14.0"
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<?xml version="1.0" standalone="no"?>
|
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
|
3
|
+
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
|
4
|
+
<svg width="768" height="768" viewBox="0 0 768 768" xmlns="http://www.w3.org/2000/svg">
|
|
5
|
+
<defs>
|
|
6
|
+
<linearGradient id="gradMain" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
7
|
+
<stop offset="0%" stop-color="#F9B23E"/>
|
|
8
|
+
<stop offset="45%" stop-color="#F57A2A"/>
|
|
9
|
+
<stop offset="100%" stop-color="#E31E2C"/>
|
|
10
|
+
</linearGradient>
|
|
11
|
+
<linearGradient id="gradInner" x1="100%" y1="0%" x2="0%" y2="100%">
|
|
12
|
+
<stop offset="0%" stop-color="#FF6A1C"/>
|
|
13
|
+
<stop offset="50%" stop-color="#F24822"/>
|
|
14
|
+
<stop offset="100%" stop-color="#C90F33"/>
|
|
15
|
+
</linearGradient>
|
|
16
|
+
<radialGradient id="glowA" cx="50%" cy="50%" r="50%">
|
|
17
|
+
<stop offset="0%" stop-color="#FFB44C" stop-opacity="0.30"/>
|
|
18
|
+
<stop offset="100%" stop-color="#FFB44C" stop-opacity="0"/>
|
|
19
|
+
</radialGradient>
|
|
20
|
+
<radialGradient id="glowB" cx="50%" cy="50%" r="50%">
|
|
21
|
+
<stop offset="0%" stop-color="#F0322B" stop-opacity="0.28"/>
|
|
22
|
+
<stop offset="100%" stop-color="#F0322B" stop-opacity="0"/>
|
|
23
|
+
</radialGradient>
|
|
24
|
+
|
|
25
|
+
<filter id="softBlur" x="-20%" y="-20%" width="140%" height="140%">
|
|
26
|
+
<feGaussianBlur stdDeviation="16"/>
|
|
27
|
+
</filter>
|
|
28
|
+
<g id="uModule" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
29
|
+
<path d="M -108 -120 V 10 A 118 118 0 0 0 108 10 V -120"
|
|
30
|
+
stroke="url(#gradMain)" stroke-width="92"/>
|
|
31
|
+
<path d="M -108 -120 V 10 A 118 118 0 0 0 108 10 V -120"
|
|
32
|
+
stroke="url(#gradInner)" stroke-width="64"
|
|
33
|
+
stroke-dasharray="230 900" stroke-dashoffset="-8"/>
|
|
34
|
+
</g>
|
|
35
|
+
</defs>
|
|
36
|
+
<g transform="translate(214 214) rotate(-45)">
|
|
37
|
+
<use href="#uModule"/>
|
|
38
|
+
</g>
|
|
39
|
+
|
|
40
|
+
<g transform="translate(554 214) rotate(45)">
|
|
41
|
+
<use href="#uModule"/>
|
|
42
|
+
</g>
|
|
43
|
+
|
|
44
|
+
<g transform="translate(214 554) rotate(-135)">
|
|
45
|
+
<use href="#uModule"/>
|
|
46
|
+
</g>
|
|
47
|
+
|
|
48
|
+
<g transform="translate(554 554) rotate(135)">
|
|
49
|
+
<use href="#uModule"/>
|
|
50
|
+
</g>
|
|
51
|
+
</svg>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { createRouter, createWebHistory } from 'vue-router'
|
|
2
|
+
|
|
3
|
+
const router = createRouter({
|
|
4
|
+
history: createWebHistory(import.meta.env.BASE_URL),
|
|
5
|
+
routes: [
|
|
6
|
+
{
|
|
7
|
+
path: '/',
|
|
8
|
+
name: 'home',
|
|
9
|
+
component: () => import('../App.vue')
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
path: '/zouyf',
|
|
13
|
+
name: 'zouyf',
|
|
14
|
+
component: () => import('../App.vue')
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
export default router
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "@vue/tsconfig/tsconfig.dom.json",
|
|
3
|
+
"include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
|
|
4
|
+
"exclude": ["src/**/__tests__/*"],
|
|
5
|
+
"compilerOptions": {
|
|
6
|
+
// Extra safety for array and object lookups, but may have false positives.
|
|
7
|
+
"noUncheckedIndexedAccess": true,
|
|
8
|
+
|
|
9
|
+
// Path mapping for cleaner imports.
|
|
10
|
+
"paths": {
|
|
11
|
+
"@/*": ["./src/*"]
|
|
12
|
+
},
|
|
13
|
+
|
|
14
|
+
// `vue-tsc --build` produces a .tsbuildinfo file for incremental type-checking.
|
|
15
|
+
// Specified here to keep it out of the root directory.
|
|
16
|
+
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// TSConfig for modules that run in Node.js environment via either transpilation or type-stripping.
|
|
2
|
+
{
|
|
3
|
+
"extends": "@tsconfig/node24/tsconfig.json",
|
|
4
|
+
"include": [
|
|
5
|
+
"vite.config.*",
|
|
6
|
+
"vitest.config.*",
|
|
7
|
+
"cypress.config.*",
|
|
8
|
+
"playwright.config.*",
|
|
9
|
+
"eslint.config.*"
|
|
10
|
+
],
|
|
11
|
+
"compilerOptions": {
|
|
12
|
+
// Most tools use transpilation instead of Node.js's native type-stripping.
|
|
13
|
+
// Bundler mode provides a smoother developer experience.
|
|
14
|
+
"module": "preserve",
|
|
15
|
+
"moduleResolution": "bundler",
|
|
16
|
+
|
|
17
|
+
// Include Node.js types and avoid accidentally including other `@types/*` packages.
|
|
18
|
+
"types": ["node"],
|
|
19
|
+
|
|
20
|
+
// Disable emitting output during `vue-tsc --build`, which is used for type-checking only.
|
|
21
|
+
"noEmit": true,
|
|
22
|
+
|
|
23
|
+
// `vue-tsc --build` produces a .tsbuildinfo file for incremental type-checking.
|
|
24
|
+
// Specified here to keep it out of the root directory.
|
|
25
|
+
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { fileURLToPath, URL } from 'node:url'
|
|
2
|
+
|
|
3
|
+
import { defineConfig } from 'vite'
|
|
4
|
+
import vue from '@vitejs/plugin-vue'
|
|
5
|
+
import vueDevTools from 'vite-plugin-vue-devtools'
|
|
6
|
+
|
|
7
|
+
// https://vite.dev/config/
|
|
8
|
+
export default defineConfig({
|
|
9
|
+
plugins: [
|
|
10
|
+
vue(),
|
|
11
|
+
vueDevTools(),
|
|
12
|
+
],
|
|
13
|
+
server: {
|
|
14
|
+
port: 41260,
|
|
15
|
+
strictPort: true,
|
|
16
|
+
open: false,
|
|
17
|
+
host: '0.0.0.0'
|
|
18
|
+
},
|
|
19
|
+
resolve: {
|
|
20
|
+
alias: {
|
|
21
|
+
'@': fileURLToPath(new URL('./src', import.meta.url))
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
})
|
package/main.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import p from"fs";import u from"path";import T from"readline";import{spawn as P}from"child_process";import{fileURLToPath as A}from"url";var j=A(import.meta.url),x=u.dirname(j),m=[{key:"1",label:"Excel",value:"Excel",template:"office"},{key:"2",label:"Word",value:"Word",template:"office"},{key:"3",label:"Ppt",value:"Ppt",template:"office"}];async function O(){try{return(await import("chalk")).default}catch{return null}}async function M(){try{return(await import("inquirer")).default}catch{return null}}function l(n){if(!n)return;let e=n.trim().toLowerCase(),t=m.find(o=>o.key===e);if(t)return t;let r=m.find(o=>o.label.toLowerCase()===e);if(r)return r}function W(n){let e=l(n);return e?e.template:String(n||"office").toLowerCase()}function y(n){return/^\d+\.\d+\.\d+$/.test(String(n||""))}function E(n){let e={name:void 0,appType:void 0,version:void 0},t=[];for(let a=0;a<n.length;a+=1){let c=n[a];if(c.startsWith("--"))throw new Error(`\u672A\u77E5\u53C2\u6570: ${c}`);t.push(c)}t[0]&&(e.name=t[0]),t[1]&&(e.appType=t[1]),t[2]&&(e.version=t[2]);let r=t[1]||"",o=t[2]||"",i=y(r),s=l(o);return i&&s&&(e.version=r,e.appType=o),e}function g(n,e){return new Promise(t=>{n.question(e,r=>t(r.trim()))})}async function _(n={}){let e={...n},t=await O(),r=await M();if(e.appType){let i=l(e.appType);i&&(e.appType=i.value)}if(e.name&&e.version&&e.appType)return e;let o=T.createInterface({input:process.stdin,output:process.stdout});try{if(!e.name){let i=await g(o,"\u8BF7\u8F93\u5165\u7A0B\u5E8F name: ");e.name=i}if(!e.version)for(;;){let s=await g(o,"\u8BF7\u8F93\u5165 version (\u9ED8\u8BA4 1.0.0): ")||"1.0.0";if(y(s)){e.version=s;break}let a="\u7248\u672C\u53F7\u683C\u5F0F\u9519\u8BEF\uFF0C\u4EC5\u652F\u6301 x.x.x\uFF0C\u4F8B\u5982 1.0.0\uFF0C\u8BF7\u91CD\u65B0\u8F93\u5165\u3002";console.log(t?t.red(a):a)}}finally{o.close()}if(!e.appType)if(r){let i=await r.prompt([{type:"list",name:"appTypeSelection",message:"\u8BF7\u9009\u62E9 appType\uFF08\u4E0A\u4E0B\u65B9\u5411\u952E\u79FB\u52A8\uFF0C\u56DE\u8F66\u786E\u8BA4\uFF09",default:m[0].value,choices:m.map(s=>({name:s.label,value:s.value}))}]);e.appType=i.appTypeSelection}else{let i=t?t.cyan("\u8BF7\u9009\u62E9 appType:"):"\u8BF7\u9009\u62E9 appType:";console.log(i);for(let a of m){let c=t?`${t.green(a.key)}. ${t.yellow(a.label)}`:`${a.key}. ${a.label}`;console.log(c)}let s=T.createInterface({input:process.stdin,output:process.stdout});try{let a=await g(s,"\u8BF7\u8F93\u5165\u5E8F\u53F7\u6216\u540D\u79F0 (\u9ED8\u8BA4 1): "),c=l(a||"1");if(!c)throw new Error("appType \u4EC5\u652F\u6301 Excel/Word/Ppt");e.appType=c.value}finally{s.close()}}return e}function D(n){if(!n.name)throw new Error("name \u4E0D\u80FD\u4E3A\u7A7A");if(/[\\/]/.test(n.name))throw new Error("name \u4E0D\u80FD\u5305\u542B\u8DEF\u5F84\u5206\u9694\u7B26");if(!n.appType)throw new Error("appType \u4E0D\u80FD\u4E3A\u7A7A");if(!l(n.appType))throw new Error("appType \u4EC5\u652F\u6301 Excel/Word/Ppt");if(!n.version)throw new Error("version \u4E0D\u80FD\u4E3A\u7A7A");if(!y(n.version))throw new Error("version \u4EC5\u652F\u6301 x.x.x \u683C\u5F0F\uFF0C\u4F8B\u5982 1.0.0")}async function k(n,e){let t=await p.promises.readdir(n,{withFileTypes:!0});await p.promises.mkdir(e,{recursive:!0});for(let r of t){let o=u.join(n,r.name),i=u.join(e,r.name);r.isDirectory()?await k(o,i):await p.promises.copyFile(o,i)}}async function F(n,e,t,r){let o=u.join(n,"package.json");if(!p.existsSync(o))return;let i=await p.promises.readFile(o,"utf8"),s=JSON.parse(i);s.name=e,s.version=t,s.appType=r,await p.promises.writeFile(o,`${JSON.stringify(s,null,2)}
|
|
3
|
+
`,"utf8")}function L(n){return new Promise((e,t)=>{let r=process.platform==="win32"?P("cmd.exe",["/d","/s","/c","npm.cmd install"],{cwd:n,stdio:"inherit"}):P("npm",["install"],{cwd:n,stdio:"inherit"});r.on("error",o=>{t(o)}),r.on("close",o=>{if(o===0){e();return}t(new Error(`npm install \u6267\u884C\u5931\u8D25\uFF0C\u9000\u51FA\u7801: ${o}`))})})}async function d(n){let e=await _(n||{}),t=l(e.appType||"Excel");t&&(e.appType=t.value),e.version=e.version||"1.0.0",D(e);let r=u.join(process.cwd(),e.name),o=W(e.appType),s=[u.resolve(x,"..","apptemplate",o),u.resolve(x,"apptemplate",o)].find(a=>p.existsSync(a));if(!s)throw new Error(`\u672A\u627E\u5230 appType \u5BF9\u5E94\u6A21\u677F: ${e.appType}`);if(p.existsSync(r))throw new Error(`\u76EE\u5F55\u5DF2\u5B58\u5728: ${r}`);await p.promises.mkdir(r,{recursive:!0}),await k(s,r),await F(r,e.name,e.version,e.appType),console.log("\u6B63\u5728\u5B89\u88C5\u9879\u76EE\u4F9D\u8D56: npm install"),await L(r),console.log(`\u521B\u5EFA\u6210\u529F: ${r}`)}import f from"fs";import w from"path";import{spawn as b}from"child_process";import I from"archiver";function N(n){return/^[A-Za-z0-9_./:-]+$/.test(n)?n:`"${String(n).replace(/"/g,'""')}"`}function J(n,e,t){return new Promise((r,o)=>{let i=process.platform==="win32"?b("cmd.exe",["/d","/s","/c",[n,...e].map(N).join(" ")],{cwd:t,stdio:"inherit"}):b(n,e,{cwd:t,stdio:"inherit"});i.on("error",s=>{o(s)}),i.on("close",s=>{if(s===0){r();return}o(new Error(`\u547D\u4EE4\u6267\u884C\u5931\u8D25: ${n} ${e.join(" ")}`))})})}async function R(n){let e=w.join(n,"package.json");if(!f.existsSync(e))throw new Error(`\u672A\u627E\u5230 package.json: ${e}`);let t=await f.promises.readFile(e,"utf8"),r=JSON.parse(t);if(!r.name)throw new Error("package.json \u7F3A\u5C11 name \u5B57\u6BB5");if(!r.version)throw new Error("package.json \u7F3A\u5C11 version \u5B57\u6BB5");return r}async function z(n,e,t){return new Promise((r,o)=>{let i=f.createWriteStream(e),s=I("zip",{zlib:{level:9}});i.on("close",()=>r()),i.on("error",a=>o(a)),s.on("error",a=>o(a)),s.pipe(i),s.glob("**/*",{cwd:n,dot:!0,ignore:[t]}),s.finalize()})}async function q(n,e){let t=w.join(n,"menifest.json");if(!f.existsSync(t))throw new Error(`\u672A\u627E\u5230 menifest.json: ${t}`);let r=await f.promises.readFile(t,"utf8"),o=JSON.parse(r);o.name=e.name,o.version=e.version,e.description&&(o.description=e.description,o.note=e.description),await f.promises.writeFile(t,`${JSON.stringify(o,null,2)}
|
|
4
|
+
`,"utf8")}async function S(){let n=process.cwd(),e=await R(n),t=w.join(n,"dist"),r=`${e.name}_${e.version}.zip`,o=w.join(t,r),i=process.platform==="win32"?"npm.cmd":"npm";if(console.log("\u5F00\u59CB\u6267\u884C\u6784\u5EFA: npm run build"),await J(i,["run","build"],n),!f.existsSync(t))throw new Error("\u6784\u5EFA\u5B8C\u6210\u540E\u672A\u627E\u5230 dist \u76EE\u5F55");console.log("\u5F00\u59CB\u540C\u6B65 menifest.json \u5B57\u6BB5"),await q(t,e),console.log(`\u5F00\u59CB\u6253\u5305 dist: ${r}`),await z(t,o,r),console.log(`\u53D1\u5E03\u5305\u751F\u6210\u6210\u529F: ${o}`)}import v from"fs";import V from"path";import{spawn as h,spawnSync as Z}from"child_process";var H={excel:"{00024500-0000-0000-C000-000000000046}",word:"{000209FF-0000-0000-C000-000000000046}",ppt:"{91493441-5A91-11CF-8700-00AA0060263B}"};function K(n){let e=String(n||"").trim().toLowerCase();if(e==="excel")return"excel";if(e==="word")return"word";if(e==="ppt"||e==="powerpoint")return"ppt";throw new Error(`\u4E0D\u652F\u6301\u7684 appType: ${n||"(\u7A7A)"}\uFF0C\u4EC5\u652F\u6301 Excel/Word/Ppt`)}async function G(n){let e=V.join(n,"package.json");if(!v.existsSync(e))throw new Error(`\u672A\u627E\u5230 package.json: ${e}`);let t=await v.promises.readFile(e,"utf8"),r=JSON.parse(t);if(!r.scripts?.dev)throw new Error("\u5F53\u524D\u9879\u76EE\u7F3A\u5C11 scripts.dev\uFF0C\u65E0\u6CD5\u6267\u884C npm run dev");if(!r.appType)throw new Error("package.json \u7F3A\u5C11 appType \u5B57\u6BB5");return r}function X(n){return/^[A-Za-z0-9_./:-]+$/.test(n)?n:`"${String(n).replace(/"/g,'""')}"`}function B(n){if(process.platform==="win32"){let e=["npm.cmd","run","dev"].map(X).join(" ");return h("cmd.exe",["/d","/s","/c",e],{cwd:n,stdio:"inherit"})}return h("npm",["run","dev"],{cwd:n,stdio:"inherit"})}function Q(n){let e=Z("reg",["query",n,"/ve"],{encoding:"utf8"});if(e.status!==0)return null;let r=`${e.stdout||""}`.split(/\r?\n/).find(i=>/REG_SZ|REG_EXPAND_SZ/i.test(i));if(!r)return null;let o=r.match(/REG_(?:SZ|EXPAND_SZ)\s+(.+)$/i);return!o||!o[1]?null:o[1].trim()}function U(n){return n.replace(/%([^%]+)%/g,(e,t)=>process.env[t]||`%${t}%`)}function Y(n){let e=U(n.trim());if(e.startsWith('"')){let r=e.indexOf('"',1);if(r>1)return e.slice(1,r)}let t=e.match(/^(.+?\.exe)/i);return t&&t[1]?t[1].trim():e}function ee(n){let e=H[n],t=[`HKCR\\CLSID\\${e}\\LocalServer32`,`HKLM\\SOFTWARE\\Classes\\CLSID\\${e}\\LocalServer32`,`HKLM\\SOFTWARE\\WOW6432Node\\Classes\\CLSID\\${e}\\LocalServer32`];for(let r of t){let o=Q(r);if(!o)continue;let i=Y(o);if(i&&v.existsSync(i))return i}throw new Error(`\u65E0\u6CD5\u901A\u8FC7 CLSID \u5B9A\u4F4D ${n} \u5B89\u88C5\u8DEF\u5F84\uFF0C\u8BF7\u68C0\u67E5 Office \u662F\u5426\u5DF2\u5B89\u88C5`)}function ne(n){h(n,["--uudev-debug"],{detached:!0,stdio:"ignore"}).unref()}async function $(){if(process.platform!=="win32")throw new Error("debug \u547D\u4EE4\u5F53\u524D\u4EC5\u652F\u6301 Windows");let n=process.cwd(),e=B(n);await new Promise((i,s)=>{e.once("error",a=>s(a)),e.once("spawn",()=>i())}),console.log("\u8C03\u8BD5\u670D\u52A1\u5DF2\u542F\u52A8\uFF0C\u6B63\u5728\u8BFB\u53D6 appType \u5E76\u542F\u52A8 Office...");let t=await G(n),r=K(t.appType),o=ee(r);console.log(`\u5DF2\u8BC6\u522B appType: ${t.appType}`),console.log(`\u542F\u52A8 Office: ${o} --uudev-debug`),ne(o),await new Promise((i,s)=>{e.on("close",a=>{if(a===0||a===null){i();return}s(new Error(`npm run dev \u9000\u51FA\uFF0C\u9000\u51FA\u7801: ${a}`))})})}async function te(){try{return(await import("chalk")).default}catch{return null}}function C(){console.log("uudev <command> [options]"),console.log(""),console.log("Commands:"),console.log(" create"),console.log(" \u4EA4\u4E92\u5F0F\u521B\u5EFA\u9879\u76EE\uFF08\u59CB\u7EC8\u8FDB\u5165\u5411\u5BFC\uFF0C\u5FFD\u7565\u9644\u5E26\u53C2\u6570\uFF09"),console.log(" dev [name] [appType|version] [version|appType]"),console.log(" \u8C03\u8BD5\u6A21\u5F0F\u521B\u5EFA\u9879\u76EE\uFF08\u521B\u5EFA\u5230\u5F53\u524D\u76EE\u5F55\uFF09"),console.log(" publish"),console.log(" \u5728\u5F53\u524D\u9879\u76EE\u4E2D\u6267\u884C npm run build\uFF0C\u5E76\u5C06 dist \u76EE\u5F55\u5185\u5BB9\u6253\u5305\u4E3A appName_version.zip"),console.log(" debug"),console.log(" \u5728\u5F53\u524D\u9879\u76EE\u4E2D\u6267\u884C npm run dev\uFF0C\u5E76\u6309 appType \u542F\u52A8 Office\uFF08\u643A\u5E26 --uudev-debug\uFF09"),console.log(" --help, -h"),console.log(" \u663E\u793A\u5E2E\u52A9\u4FE1\u606F"),console.log(""),console.log("AppType options: Excel | Word | Ppt"),console.log("Version format : x.x.x (\u4F8B\u5982 1.0.0)")}async function re(){let n=process.argv[2],e=await te();if(!n||n==="--help"||n==="-h"||n==="help"){C();return}if(n==="create"){if(process.argv.length>3){let t="create \u547D\u4EE4\u4F1A\u5FFD\u7565\u9644\u5E26\u53C2\u6570\uFF0C\u5DF2\u8FDB\u5165\u521B\u5EFA\u5411\u5BFC\u3002";console.log(e?e.yellow(t):t)}await d();return}if(n==="dev"){let t=E(process.argv.slice(3));if(t.name){let r=l(t.appType),o=r?r.value:t.appType||"Excel";await d({name:t.name,appType:o,version:t.version||"1.0.0"})}else await d();return}if(n==="publish"){await S();return}if(n==="debug"){await $();return}C()}re().catch(n=>{console.error(`\u6267\u884C\u5931\u8D25: ${n.message}`),process.exit(1)});
|
package/package.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "uudev",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "uudev dev tool",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"uudev"
|
|
7
|
+
],
|
|
8
|
+
"license": "ISC",
|
|
9
|
+
"author": "uuer",
|
|
10
|
+
"type": "module",
|
|
11
|
+
"main": "./main.js",
|
|
12
|
+
"bin": {
|
|
13
|
+
"uudev": "./main.js"
|
|
14
|
+
},
|
|
15
|
+
"engines": {
|
|
16
|
+
"node": ">=24.14.0"
|
|
17
|
+
},
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"archiver": "^7.0.1",
|
|
20
|
+
"chalk": "^5.6.2",
|
|
21
|
+
"inquirer": "^12.10.0"
|
|
22
|
+
},
|
|
23
|
+
"files": [
|
|
24
|
+
"main.js",
|
|
25
|
+
"README.md",
|
|
26
|
+
"apptemplate"
|
|
27
|
+
]
|
|
28
|
+
}
|