@das-fed/cli 1.0.2 → 1.0.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@das-fed/cli",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -12,6 +12,7 @@
12
12
  "license": "ISC",
13
13
  "dependencies": {
14
14
  "@dimple-smile/node-helper": "^1.0.0",
15
+ "@vitejs/plugin-vue-jsx": "^3.1.0",
15
16
  "chokidar": "^3.6.0",
16
17
  "concurrently": "^8.2.2",
17
18
  "fast-glob": "^3.3.2",
@@ -19,6 +20,8 @@
19
20
  "json5": "^2.2.3",
20
21
  "minimatch": "^9.0.3",
21
22
  "minimist": "^1.2.8",
23
+ "prettier": "^3.2.5",
24
+ "strip-comments": "^2.0.1",
22
25
  "ts-morph": "^21.0.1",
23
26
  "vite-plugin-style-import": "^2.0.0"
24
27
  },
@@ -0,0 +1 @@
1
+ import{resolve}from"path";import fs from"fs-extra";const deleteFile=async(r={})=>{var s=(r||{})["cwd"],e=["scripts","src/router","src/store","src/style","src/types","src/watchers","src/main-app.ts","src/main-app.vue","src/micro-app.ts","src/micro-app.vue","src/render.ts","src/store-regist.ts"];for(const c in e){var t=resolve(s,e[c]);await fs.remove(t)}};export{deleteFile};
@@ -0,0 +1,30 @@
1
+ import{resolve}from"path";import fs from"fs-extra";import glob from"fast-glob";import{checkInLocalWorkspace}from"../../../utils/check-local-workspace.js";import{execSync}from"child_process";const writeFile=async e=>{var{cwd:e=process.cwd(),path:t="",content:s=""}=e,e=resolve(e,t);await fs.ensureFile(e),await fs.remove(e),await fs.writeFile(e,s)},updateDasui=async(e={})=>{e=(e||{}).cwd,e=resolve(e,"src/das-fe/ui");fs.ensureDirSync(e),fs.emptydirSync(e),await writeFile({cwd:e,path:"index.ts",content:`export * from '@das-fed/ui/packages/components'
2
+ export * from '@das-fed/ui/packages/business-components'`})},updateUtils=async(e={})=>{var e=(e||{})["cwd"],t=resolve(e,"node_modules/@das-fed/utils"),s=await checkInLocalWorkspace();let o=[];o=s?["**/*.ts","!**/*.d.ts","!node_modules/**","!dist/**","!scripts/**","!log/**","!changelog/**"]:["**/*.js","!**/*.d.ts","!node_modules/**"];s=await glob(o,{cwd:t,onlyFiles:!0});const a=resolve(e,"src/utils");fs.ensureDirSync(a),fs.emptydirSync(a);t=s.map(e=>({cwd:a,path:e.replace(".js",".ts"),content:`export * from '@das-fed/utils/${e.replace(".js","").replace(".ts","")}'`})),e=[{cwd:a,path:"i18n/index.ts",content:"export {initI18n, langsData, setLang, i18n, getLange} from '@das-fed/web'"},{cwd:a,path:"theme/index.ts",content:"export {initTheme, themes, themesData, setTheme, getVar, getVarValue} from '@das-fed/web'"},{cwd:a,path:"use-low-code/index.ts",content:"export { DasLowCode as LowCode } from '@das-fed/ui/packages/business'"}];(t=[...t,...e]).forEach(e=>writeFile(e))},updateCommon=async(e={})=>{e=(e||{}).cwd,e=resolve(e,"src/common");fs.ensureDirSync(e),fs.emptydirSync(e),await writeFile({cwd:e,content:"export {DasLayoutBreadcrumb as LayoutBreadCrumb, DasLayoutBreadcrumbRef as layoutBreadcrumbRef} from '@das-fed/ui/packages/business'",path:"micro-app/layout/layout-breadcrumb/index.ts"})},updateViteConfig=async(e={})=>{e=(e||{}).cwd;await writeFile({cwd:e,content:`import { defineConfig } from 'vite'
3
+ import vue from '@vitejs/plugin-vue'
4
+ import vueJsx from '@vitejs/plugin-vue-jsx'
5
+ import { dasFeWebVitePlugin } from '@das-fed/cli'
6
+ import AutoImport from 'unplugin-auto-import/vite'
7
+ import Components from 'unplugin-vue-components/vite'
8
+ import { ElementPlusResolver, AntDesignVueResolver } from 'unplugin-vue-components/resolvers'
9
+ export default defineConfig({
10
+ plugins: [
11
+ vue(),
12
+ vueJsx(),
13
+ dasFeWebVitePlugin(),
14
+ AutoImport({ resolvers: [ElementPlusResolver(), AntDesignVueResolver()] }),
15
+ Components({ resolvers: [ElementPlusResolver(), AntDesignVueResolver()] }),
16
+ ],
17
+ })`,path:"vite.config.ts"})},updateMain=async(e={})=>{var e=(e||{})["cwd"],t=resolve(e,"public/config.js");await fs.ensureFile(t),await writeFile({cwd:e,content:`import App from './App.vue'
18
+ import { createDasWebApp } from '@das-fed/web'
19
+ createDasWebApp({
20
+ root: { component: App },
21
+ router: { glob: import.meta.glob('@/views/*/router.ts', { eager: true }) },
22
+ plugins: { glob: import.meta.glob('@/plugins/*/index.ts', { eager: true }) },
23
+ })`,path:"src/main.ts"})},updateConfig=async()=>{[{content:"dist\ndist-ssr\n*.local\nnode_modules/\n.cache/\ncache/\n.vscode/*",path:".gitignore"},{content:`{
24
+ "singleQuote": true,
25
+ "tabWidth": 2,
26
+ "printWidth": 120,
27
+ "semi": false,
28
+ "trailingComma": "all",
29
+ "bracketSpacing": true
30
+ }`,path:".prettierrc"}].forEach(e=>writeFile(e))};export{updateDasui,updateUtils,updateCommon,updateViteConfig,updateMain,updateConfig};
@@ -0,0 +1 @@
1
+ import{updateDasui,updateUtils,updateCommon,updateViteConfig,updateMain,updateConfig}from"./core/update-file.js";import{deleteFile}from"./core/delete-file.js";export default{handle:async a=>{console.log("das-cli async-starter running!");var e={cwd:process.cwd()};await deleteFile(e),await updateDasui(e),await updateUtils(e),await updateCommon(e),await updateMain(e),await updateViteConfig(e),await updateConfig(e),console.log("das-cli async-starter success!")}};
@@ -0,0 +1 @@
1
+ import fs from"fs-extra";import{dirname,resolve}from"path";import{fileURLToPath}from"url";const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename),generateNginx=async e=>{let{cwd:r,mainAppName:a="",microAppName:i="",microApps:o=""}=e;0<o.length&&e.microApps.split(",").map(e=>({...e,name:e.toLocaleLowerCase()})),a=a.toLocaleLowerCase(),i=i.toLocaleLowerCase();a;var e=!!i,n=resolve(__dirname,"./nginx.main.conf"),t=resolve(__dirname,"./nginx.micro.conf"),m=resolve(r,"dist/nginx.conf"),n=(await fs.ensureFile(m),fs.readFileSync(n).toString());let l=fs.readFileSync(t).toString();e&&(l=l.replace(/\{url\}/g,("/"+i).replace(/\/\//g,"/"))),await fs.writeFile(m,e?l:n)};export{generateNginx};
@@ -0,0 +1 @@
1
+ import fs from"fs-extra";import prettier from"prettier";import strip from"strip-comments";import json5 from"json5";const getWindowConfig=async r=>{r=(await fs.readFile(r)).toString(),r=(await prettier.format(strip(r),{parser:"typescript"})).split(";").find(r=>r.match("window.config")).replace(/\s/g,"").replace("window.config=","");return json5.parse(r)};export{getWindowConfig};
@@ -1 +1 @@
1
- import concurrently from"concurrently";import{initPublicConfig}from"../dev-helper/init-public-config.js";import{initWatchers}from"../dev-helper/watchers/index.js";export default{handle:i=>{var e={cwd:process.cwd(),isDev:!1,isBuild:!0};initPublicConfig(e),initWatchers(e),concurrently([{command:"npx vite build",name:"vite"}])}};
1
+ import{initPublicConfig}from"../dev-helper/init-public-config.js";import{initWatchers}from"../dev-helper/watchers/index.js";import{execSync}from"child_process";import{resolve}from"path";import{generateNginx}from"./generate-nginx.js";import{getWindowConfig}from"./get-window-config.js";export default{handle:async i=>{var e=process.cwd(),n={cwd:e,isDev:!1,isBuild:!0},n=(initPublicConfig(n),initWatchers(n),execSync("npx vite build",{cwd:e,stdio:"inherit"}),await getWindowConfig(resolve(e,"public/config.js")));generateNginx({cwd:e,...n})}};
@@ -0,0 +1,55 @@
1
+ worker_processes auto;
2
+ worker_rlimit_nofile 6000;
3
+ events {
4
+ worker_connections 1000;
5
+ }
6
+ http {
7
+ include mime.types;
8
+ default_type application/octet-stream;
9
+
10
+ # 使用gzip压缩
11
+ gzip on;
12
+ gzip_proxied any;
13
+ gzip_http_version 1.0;
14
+ gzip_min_length 1100;
15
+ gzip_buffers 4 16k;
16
+ gzip_comp_level 1;
17
+ gzip_vary on;
18
+ gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/json application/javascript image/x-icon;
19
+ gzip_disable "MSIE [1-6]\.";
20
+
21
+ # proxy配置
22
+ proxy_http_version 1.1;
23
+ proxy_connect_timeout 86400s;
24
+ proxy_read_timeout 86400s;
25
+ proxy_send_timeout 86400s;
26
+ proxy_set_header Upgrade $http_upgrade;
27
+ proxy_set_header Connection "upgrade";
28
+ proxy_set_header Host $host;
29
+ proxy_set_header X-Real-IP $remote_addr;
30
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
31
+ proxy_set_header X-Forwarded-Proto $scheme;
32
+ proxy_set_header X-Frame-Options SAMEORIGIN;
33
+
34
+
35
+
36
+ sendfile on;
37
+ keepalive_timeout 65;
38
+ client_max_body_size 500m;
39
+ server_tokens off;
40
+ server {
41
+
42
+ listen 80;
43
+ location / {
44
+ root /usr/share/nginx/html;
45
+ index index.html index.htm;
46
+ try_files $uri $uri/ /index.html;
47
+ expires 0;
48
+ }
49
+
50
+ error_page 500 502 503 504 /50x.html;
51
+ location = /50x.html {
52
+ root html;
53
+ }
54
+ }
55
+ }
@@ -0,0 +1,61 @@
1
+ worker_processes auto;
2
+ worker_rlimit_nofile 2000;
3
+ events {
4
+ worker_connections 1000;
5
+ }
6
+ http {
7
+ include mime.types;
8
+ default_type application/octet-stream;
9
+ # 使用gzip压缩
10
+ gzip on;
11
+ gzip_proxied any;
12
+ gzip_http_version 1.0;
13
+ gzip_min_length 1100;
14
+ gzip_buffers 4 16k;
15
+ gzip_comp_level 1;
16
+ gzip_vary on;
17
+ gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/json application/javascript image/x-icon;
18
+ gzip_disable "MSIE [1-6]\.";
19
+
20
+ # proxy配置
21
+ proxy_http_version 1.1;
22
+ proxy_connect_timeout 86400s;
23
+ proxy_read_timeout 86400s;
24
+ proxy_send_timeout 86400s;
25
+ proxy_set_header Upgrade $http_upgrade;
26
+ proxy_set_header Connection "upgrade";
27
+ proxy_set_header Host $host;
28
+ proxy_set_header X-Real-IP $remote_addr;
29
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
30
+ proxy_set_header X-Forwarded-Proto $scheme;
31
+ proxy_set_header X-Frame-Options SAMEORIGIN;
32
+
33
+
34
+ sendfile on;
35
+ keepalive_timeout 65;
36
+ client_max_body_size 500m;
37
+ server_tokens off;
38
+ server {
39
+ listen 80;
40
+ location / {
41
+ root /usr/share/nginx/html;
42
+ try_files $uri $uri/ /index.html;
43
+ expires 0;
44
+ }
45
+
46
+ location ~ ^/(api|oss)/ {
47
+ proxy_pass http://gateway;
48
+ }
49
+
50
+ location {url} {
51
+ alias /usr/share/nginx/html;
52
+ try_files $uri $uri/ {url}/index.html;
53
+ expires 0;
54
+ }
55
+
56
+ error_page 500 502 503 504 /50x.html;
57
+ location = /50x.html {
58
+ root html;
59
+ }
60
+ }
61
+ }
File without changes
@@ -1,3 +1,3 @@
1
- import{resolve}from"path";import fs from"fs-extra";const ignoreList=["*.local.*","*/*local*/*"],initGitignore=async(t={})=>{t=(t||{}).isDev;if(t){t=resolve(process.cwd(),".gitignore");await fs.exists(t)||await fs.writeFile(t,"");let i=(await fs.readFile(t)).toString();for(const e of ignoreList)i.indexOf(e)<0&&(i+=`\r
1
+ import{resolve}from"path";import fs from"fs-extra";const ignoreList=["*.local.*","**/*local*/*"],initGitignore=async(t={})=>{t=(t||{}).isDev;if(t){t=resolve(process.cwd(),".gitignore");await fs.exists(t)||await fs.writeFile(t,"");let i=(await fs.readFile(t)).toString();for(const e of ignoreList)i.indexOf(e)<0&&(i+=`\r
2
2
  ${e}\r
3
3
  `);await fs.writeFile(t,i)}};export{initGitignore};
@@ -1 +1 @@
1
- import glob from"fast-glob";import chokidar from"chokidar";import{minimatch}from"minimatch";import{dirname,resolve}from"path";import{fileURLToPath}from"url";const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename),loadWatcherModules=async a=>{var e=await glob("./*/index.js",{cwd:resolve(__dirname)});if(console.log(resolve(__dirname)),0!==e.length)return Promise.all(e.map(a=>import("./"+a).then(a=>a?.default||{})))},initWatchers=async o=>{const i=await loadWatcherModules();var{isBuild:a=!1,isDev:e=!1,cwd:r=process.cwd()}=o||{};i.map(a=>a?.load(o)),e&&!a&&(e=i.map(a=>a.glob||[]).flat().concat(i.map(a=>a.ignoreGlob||[]).flat()),chokidar.watch(e,{persistent:!0,cwd:r}).on("change",e=>{var a=i.find(a=>a.glob.map(a=>minimatch(e,a)).includes(!0));a&&a.change&&(console.log(`${a.name||"das-fe-watcher"} change!`),a.change(o))}))};export{initWatchers};
1
+ import glob from"fast-glob";import chokidar from"chokidar";import{minimatch}from"minimatch";import{dirname,resolve}from"path";import{fileURLToPath}from"url";const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename),loadWatcherModules=async a=>{var e=await glob("./*/index.js",{cwd:resolve(__dirname)});if(0!==e.length)return Promise.all(e.map(a=>import("./"+a).then(a=>a?.default||{})))},initWatchers=async o=>{const i=await loadWatcherModules();var{isBuild:a=!1,isDev:e=!1,cwd:r=process.cwd()}=o||{};i.map(a=>a?.load(o)),e&&!a&&(e=i.map(a=>a.glob||[]).flat().concat(i.map(a=>a.ignoreGlob||[]).flat()),chokidar.watch(e,{persistent:!0,cwd:r}).on("change",e=>{var a=i.find(a=>a.glob.map(a=>minimatch(e,a)).includes(!0));a&&a.change&&(console.log(`${a.name||"das-fe-watcher"} change!`),a.change(o))}))};export{initWatchers};
@@ -1 +1 @@
1
- import{resolve,dirname}from"path";import{fileURLToPath}from"url";import fs from"fs-extra";import json5 from"json5";const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename),checkInLocalWorkspace=async()=>{var r=resolve(__dirname,"../../../../package.json");if(!await fs.exists(r))return!1;try{var a=await fs.readFile(r);return"@das-fed/framework"===(await json5.parse(a)).name}catch{return!1}};export{checkInLocalWorkspace};
1
+ import{resolve,dirname}from"path";import{fileURLToPath}from"url";import fs from"fs-extra";import json5 from"json5";const __filename=fileURLToPath(import.meta.url),__dirname=dirname(__filename),checkInLocalWorkspace=async()=>{var e=resolve(__dirname,"../../../../pnpm-workspace.yaml"),r=resolve(__dirname,"../../../../../pnpm-workspace.yaml");return!!fs.existsSync(e)||!!fs.existsSync(r)};export{checkInLocalWorkspace};
@@ -1 +1 @@
1
- import{dasFeWeb,DasWebStyleImport}from"./das-fe-web/index.js";import{DasUIStyleImport}from"./das-fe-ui/index.js";import{checkInLocalWorkspace}from"../utils/check-local-workspace.js";const dasFeWebVitePlugin=async(e={})=>{var{dasWeb:e={styleResolve:!0},dasUI:s={styleResolve:!0}}=e||{};return await checkInLocalWorkspace()&&(e.styleResolve=!1,s.styleResolve=!1),[dasFeWeb(e),DasWebStyleImport(e),DasUIStyleImport(s)]};export{dasFeWebVitePlugin};
1
+ import{dasFeWeb,DasWebStyleImport}from"./das-fe-web/index.js";import{DasUIStyleImport}from"./das-fe-ui/index.js";import{checkInLocalWorkspace}from"../utils/check-local-workspace.js";import vueJsx from"@vitejs/plugin-vue-jsx";import AutoImport from"unplugin-auto-import/vite";import Components from"unplugin-vue-components/vite";import{ElementPlusResolver,AntDesignVueResolver}from"unplugin-vue-components/resolvers";const dasFeWebVitePlugin=async(e={})=>{var{dasWeb:e={styleResolve:!0},dasUI:s={styleResolve:!0}}=e||{};return await checkInLocalWorkspace()&&(e.styleResolve=!1,s.styleResolve=!1),[vueJsx(),AutoImport({resolvers:[ElementPlusResolver(),AntDesignVueResolver()],dts:"./src/das-fe-local-runtime/auto-imports.d.ts"}),Components({resolvers:[ElementPlusResolver(),AntDesignVueResolver()],dts:"./src/das-fe-local-runtime/components.d.ts"}),dasFeWeb(e),DasWebStyleImport(e),DasUIStyleImport(s)]};export{dasFeWebVitePlugin};