代码生成器前端本地运行&部署

环境准备

本地运行

安装依赖

1、使用 WebStorm 打开(VSCode 也是可以的)

用 WebStorm 打开前端源码

image-20250402111925848

回弹出一个是否相信,选择相信即可

2、找到 Terminal 选项

image-20250402112113363

如果没有看到看这里有没有

image-20241114101254432

还是没有的话找到 Settings -> plugins -> Terminal

image-20241114101344618 image-20241114101433358

3、执行

shell
复制代码
npm install --force
image-20250402112200914

最后执行效果:

image-20250402112351840

运行前端

找到根目录下的 pakage.json

image-20250402113008780 image-20250402113224492

Run dev 就是正常启动

如果是想要 debug 的话建议可以看看

启动成功

image-20250402113412582

访问 http://localhost:8000 可以看到

image-20250402113904703

pakage.json

text
复制代码
"scripts": { "dev": "vite", "pure-build": "vite build", "build": "run-p type-check \"build-only {@}\" --", "openapi": "node openapi.config.js", "preview": "vite preview", "build-only": "vite build", "type-check": "vue-tsc --build", "lint": "eslint . --fix", "format": "prettier --write src/" },
  1. dev 开发化境启动,会热更新(如果有修改会立刻体现)
  2. buid 构建模式,会生成 dist 文件方便前端部署

修改请求路径

本地运行就修改 src/constants/index.ts 里面的 BACKEND_HOST_LOCAL 修改对应的值变成后端实际运行的地址即可,如果是线上部署就修改 BACKEND_HOST_PROD

image-20250402114046528

本地就使用 localhost 部署到服务器上就修改成 IP 或者域名

测试功能

后端需要提前启动可以参考 https://www.codefather.cn/post/1905134703878529025

1、后端执行插入测试 SQL

image.png

把 INSERT 语句复制到 Query Console 右键选择 「Execute」

image.png

完整的 INSERT 语句

sql
复制代码
INSERT INTO my_db.generator (name, description, basePackage, version, author, tags, picture, fileConfig, modelConfig, distPath, status, userId, createTime, updateTime, isDelete) VALUES ( 'acm-template-pro-generator', 'ACM 示例模板生成器', 'com.yupi', '1.0', 'yupi', '["Java"]', 'https://pic.code-nav.cn/migrate_image/f22a0535d56b9513066da1e2ea02fd7c.webp', '{"files":[{"type":"group","condition":"needGit","groupKey":"git","groupName":"开源","files":[{"inputPath":".gitignore","outputPath":".gitignore","type":"file","generateType":"static"},{"inputPath":"README.md","outputPath":"README.md","type":"file","generateType":"static"}]},{"inputPath":"src/com/yupi/acm/MainTemplate.java.ftl","outputPath":"src/com/yupi/acm/MainTemplate.java","type":"file","generateType":"dynamic"}]}', '{"models":[{"fieldName":"needGit","type":"boolean","description":"是否生成 .gitignore 文件","defaultValue":true},{"fieldName":"loop","type":"boolean","description":"是否生成循环","defaultValue":false,"abbr":"l"},{"type":"MainTemplate","description":"用于生成核心模板文件","groupKey":"mainTemplate","groupName":"核心模板","models":[{"fieldName":"author","type":"String","description":"作者注释","defaultValue":"yupi","abbr":"a"},{"fieldName":"outputText","type":"String","description":"输出信息","defaultValue":"sum = ","abbr":"o"}],"condition":"loop"}]}', '/generator_dist/1904820595580289025/7xQuIpqf-acm-template-pro-generator.zip', 0, 1904820595580289025, '2025-03-26 14:24:22', '2025-04-04 17:58:33', 0);

2、创建用户并且在数据库里面把 generator 表里面的 userId 字段改成自己登录 user 的 id 方便后续操作

user 表

image.png

generator 表

image-20250407171357143

3、找到 acm-template-pro-generator 会发现有了编辑按钮

image-20250407171459358

4、进行编辑,一直点下一步其他的不用修改,直接到「文件生成器文件」

image-20250407171720787

5、压缩 yuzi-generator-demo-projects\acm-template-pro 上传到「模板文件」一栏

image-20250407172141796

6、上传 src.zip 压缩包

image-20250407172226850

7、上传成功点击 制作 ,成功最后后端会返回一个 zip 压缩包,我们把得到的 zip 上传到 「产物包」一栏

image-20250407172306406

8、找到后端返回的 zip 大小是 4 MB 左右如果太小比如 几 kb 之类的就证明后端生成出现了问题

image-20250407172647923

9、成功之后我们点击 「提交」

image-20250407172843040

10、测试使用

image-20250407172922706 image-20250407172956672

点击生成代码之后,后端会返回一个 zip 我们进行解压查看生成是否有问题

如果出现压缩包格式错误或者生成内容不对就是后端出了问题,可以排查一下后端

image-20250407173213473

11、至此测试成功🤩🤩🤩

打包

image-20250402114237645

build 成功

image-20250402114306762

可以看到出现了 dist 目录

image-20250402114333676

如果没有出现 dist 目录,那么就按照下面进行操作一下,就可以看到了

File -> Reload All from Disk

image-20250211195133450

部署

『 前端部署教程(通用) 』

相关专栏

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
leikooo
作者分享
ARTS 0809: 反转链表、Shopify 如何用 MySQL 解决超卖与 AI 时代程序员的价值
5
译文:《SwiftUI 七年:平庸的故事》 SwiftUI 在 2019 年高调发布,本应成为苹果全平台成熟、可量产的 UI 未来。七年过去,到了 2026 年,它仍像一场永不结束的 beta:布局难预期、性能不稳、数据流混乱,还几乎没有可靠的向后兼容,开发者被迫写一堆 shim 和 workaround。 作者用苹果官方教程(甚至是有问题的)以及与 UIKit 的对比说明:SwiftUI 用“看起来方便”换掉了精确的工程控制。更深一层,他认为这反映了苹果从 Cocoa、Aqua、Auto Layout 那种不妥协的工艺,转向“够用就行”的企业文化。 SwiftUI 为何存在 苹果并非单纯想提供更好工具,而是不得不应对竞争:React、React Native、Flutter 让“一套代码多端跑”变得诱人;Mac 上原生应用又日渐被网页和 Electron 吃掉。SwiftUI 要同时拴住原生生态、并降低移植到 Mac 的成本。卖点是:响应式数据流、声明式布局、跨平台复用。 数据流 “单一数据源”听起来很美,实际却是 @State、@Binding、ObservedObject,再到 Observation / @Observable 的不断换代。你很难确定视图会更新几次、为何更新;它该忽略的变化会反应,该关心的变化又可能忽略 - - 像个黑盒。 布局系统 基于尺寸协商的布局在 Keynote 里很合理,做浮动视图、自定义侧边栏时却极度不稳定。官方教程里一个很普通的侧边栏,多年仍有问题。布局脆弱到最后往往只能上 GeometryReader - - 一旦用了,声明式优势就没了,还要手算坐标,而且下一版布局规则一变,数学还得重写。 API 稳定与功能对等 代码里满是 if #available。滚动收起键盘要到 iOS 16;工具栏定制很晚才来;网络图片 AsyncImage 要到 iOS 15,缓存相关 API 到 2026 年 7 月仍在 beta。旧 API 常被换掉(如 NavigationView → NavigationStack),开发者要维护多套实现,等于替苹果做 QA。对比 Android 的 Jetpack Compose 可作为依赖打包回退到旧设备,SwiftUI 做不到“写最新 API、稳定回退”。 性能 在真实对比里,即便做了后台解码等优化,SwiftUI 图片网格滚动仍明显不如 UIKit。若展示一堆 JPEG 都得靠顶级芯片撑,架构本身就有问题。 跨平台神话 苹果说的是“学一次、到处用”,不是“写一次、到处跑”。iOS 上学到的布局很少直接适用 Mac;同一套 view 跨平台实现也不一致。结果常变成:学一次、再学一次、某处能用、处处要调。 哲学转向 最大的问题是“够用就行”:覆盖 90% 用例就算成功,用 velocity 掩盖质量下降。作者列举系统与一线应用中的各种瑕疵,认为这不是偶然,而是苹果主动降低质量门槛 - - 所以即使过了七年,他仍不信任 SwiftUI。 结论 对构建稳定、高性能、可维护系统真正重要的部分,SwiftUI 几乎都有问题。它不是“极差”,而是平庸 - - 用假便利换真精度,要么你花时间给框架打补丁,要么把半成品发出去。作者更宁愿继续用“遗留”的 UIKit / AppKit。 最后小总结: 最让人不能接受的不是“SwiftUI 还有 bug”,而是它把“看起来很快”当成了工程上的完成态。声明式、预览、跨平台,每一项都在秀高级感,可真正写进业务后,你面对的是难预测的重绘、脆弱的布局、层层 #available,以及把兼容和排错外包给业务方的现实。七年够长了,若还靠“框架还年轻”解释,那更像是对标准的侮辱。技术选型从来不只是语法偏好,而是你选的是可预期性、可维护成本,以及对用户体验的态度。平庸的“成功”往往比明显失败更危险 ,你说它能上线、能 demo、能交差,但是却在细节里一点点磨损信任。工具可以换代,但对质量的要求不该跟着一起降级。
4
ARTS 0802: 合并有序链表、AI 时代的技术断层与 TCP 200ms 延迟之谜
5
Spring 团队开发者布道师 Josh Long,从 2011 年起每周二坚持写 This Week in Spring https://spring.io/authors/joshlong,大概 15 年半从未间断,到现在大概写了 800 期以上😱 大佬在采访里他说,写博客不是额外负担,而是逼自己整理每周所学的「强制机制」——反正本来就会刷社区动态,写出来既方便自己,也帮到别人。更重要的是 Spring 一直在变:微服务、AI……永远有新东西可聊,停一周就容易掉队。一旦养成习惯,坚持往往比重新开始更容易。 这种级别的大佬都还在用周更逼自己不掉队,我更没理由再拖了。还有之前左耳朵耗子大佬说的 ARTS 打卡,我老实说只撑了两周,真的需要捡起来了,加油✊
10
试了下 Grok CLI:curl -fsSL https://x.ai/cli/install.sh | bash 虽然功能不如 Claude Code 全,但能免费用 Grok 4.5 啊😍。一行 prompt 大概 3 分钟就生成出来了而且没有报错:" Three.js UMD 构建。正在实现完整的太阳系模拟(含自定义轨道控制,兼容本地打)"。 大伙可以访问试试:https://solar-system-seven-mocha.vercel.app/
4
下载 APP