Vibe打金1

小白学打包应用

开发懒猫服务应用并成功获得激励奖金的过程记录

[懒猫微服]

相关链接:

立即体验

如果你懂技术,没有什么必要读这篇文章。

请直接前往:懒猫微服文集推荐 阅读 @忘机山人 大佬的专业文章。

其中的这两篇:

已经能很好地对打包应用进行指导。

而本文的内容,主要是从“技术小白”或我这样的外行纯“Vibe Coder"角度出发的。

因为在开发大神们(包括官方的大神们)的眼中,技术上有太多的“常识”。很多技术内容对于“他们”可能就是一个关键词而已,而对于“我们”这些外行却是要去翻查尝试和学习很久的,甚至AI都解释不清。再加上经常在其他的常识上踩坑,“我们”的前进之路可能会比“他们”要艰难得多。

而官方文档,为了简洁全面,总是把尽可能多的可能性、极端情况与各种高端应用都写进去,对于基础知识比较少的“我们”来说,会显得很复杂,而且经常会被误导,以为一定要用某种高端的方式才能实现某些其实很基础的功能。

本文也可以当作是小白的我对于忘大佬攻略或官方文档的学习笔记,我也会补充一些我做为小白踩到的坑。

另外,我会尝试一边写这篇攻略,一边在AI的协助下整理进一步的提示词和资料,以达到让AI可以指导我们打包的目的,在此依然会用到Refly。

Refly效率工具查看详情

https://appstore.lazycat.cloud/#/shop/detail/iamxiaoe.lzcapp.refly

另外会用到这个神器:

https://appstore.lazycat.cloud/#/shop/detail/in.zhaoj.devaihelper

开发者文档AI助手开发工具查看详情

基础信息

首先我向神器开发者文档助手询问了如下问题:

我想了解懒猫应用的打包机制和应用包的执行流程

得到的答复是:

基于提供的资料,懒猫应用的打包机制和应用包执行流程如下所述,每个陈述均严格引用资料原文:
懒猫应用的打包机制涉及准备特定文件:包括 lzc-build.yml(构建脚本)、lzc-manifest.yml(应用元信息配置)和图标文件(如 icon.png),这些文件需放置在同一目录下;随后使用 lzc-cli project build 命令构建输出 .lpk 安装包文件[3]。
资源文件(如模型文件)可打包到镜像或 .lpk 中:若资源文件较小(<200M),可直接打包到 .lpk 中,应用运行时通过只读目录 /lzcapp/pkg/content 访问;但资源文件不能放在 /lzcapp/ 目录下,因该目录在运行时会被覆盖[1]。
在 devshell 开发模式下,默认不会打包 lzc-build.yml 中指定的 contentdir 内容;如需打包,需使用 lzc-cli project devshell --contentdir 命令显式启用[1]。
应用包安装流程:通过 lzc-cli app install <lpk文件> 命令安装 .lpk 包;安装后,包内容会被解压到微服系统的 /data/system/pkgm/apps/$appid 目录下[2]。
执行前渲染机制:安装后,在应用启动前,系统根据运行时信息(如用户ID)动态渲染 manifest.yml 文件:使用 Go 的 text/template 模板引擎,结合内置参数(如用户参数、系统域名等),将渲染结果输出到 /data/system/pkgm/run/appid 目录;渲染支持函数如 stable_secret 生成稳定密码[2]。
最终运行流程:渲染后的 manifest.yml 被转换为 Docker 规范,系统据此启动并运行相关容器;重启或多实例场景下会重新渲染[2]。

由于神器的系统提示可能是要求严格引用资料,所以这些内容都是在开发者文档中可以找到的,必然是精确的内容。但是其中的渲染动态manifest部分,虽然看上去应该有用,但其实以我目前的水平还用不到,只属于“不明觉厉”的程度。

AI分析

由于担心会干扰到AI的理解,于是我会只选用基础的部分喂给AI。

直接上画布:

提示语:

请仔细理解和分析附件中的文档和链接内容,总结一份关于懒猫微服应用的打包技术要点文档,要求准确细致,关键技术点必须使用原文本,只在逻辑顺序调整、阅读引导和分析解释时使用合适的语言能力

在我整理了许多关于打包知识点之后(官方文档节选、官方标准链接、攻略链接及节选、示例代码、我自己写的理解思路),我把它们统统喂给了AI,由Claude Sonnet 4和GPT4.1分别分析之后,得到了这样两篇文档:

大致浏览下来,虽然结构上还不尽人意,但是由于我在提示中要求严格遵照原文,所以应该不会出什么大的错误。(如果某些技术大佬或官方大佬有空,不妨帮忙校正一下,但从结构和内容来说价值似乎不大。)

验证

我把这个生成的综合文档,又喂给Refly中另一个画板,这个画板中我搭建了一个懒猫应用,具体的细节我会在下一章中详细说明。在这里,我只是希望AI帮我写打包文件和启动脚本,用以作为对上面文档的验证。

提示词

请根据附件中的打包技术要点,帮我准备打包这个应用的相关配置文件以及启动脚本

得到了这样两个指导文档:

看下来,还是理解错误了不少,比如路由并没有写好,比如依赖里装了php(我之前的喂上的项目是node的)。

真正的打包文件可能需要细调,或直接使用前文的神器:开发者文档AI助手

但是,看上去AI似乎对于打包流程已经能够有正确的理解了,如果我在下一个项目的开发前就导入这些资料,也有可能会得到更好一些的结果。

任务完成度,可以说70%吧,至少对我这样的小白来说还是不错。

孔子曰:遇事不决不能全靠AI。在这个过程中我自己也学到了很多,所以这项工作还是有价值的。

我理解的整个流程

我在前文给AI喂料的时候写的这个,全是基于我的摸索和理解,不一定正确,还往各位一定不要相信我。

1.功能开发

选用适合的技术栈,后端主推Node.js / PHP,前端主推React.js / Vue.js。(这句是写给AI看的,是我的技术偏好)
其他技术在必要时也都可以使用,也可以直接使用Docker镜像。

2.Devshell调试

(略)

3.编写lzc-build.yml

lzc-build.yml 定义打包配置参数。
在打包前会自动运行buildscript所指定的脚本,可进行打包前的依赖安装,模板化构建,以及其他打包前需执行的文件处理等。

4.编写lzc-manifest.yml

lzc-manifest.yml 定义应用元信息配置。其中最重要的是application.route。

5.使用lzc-cli打包

使用 lzc-cli project build 将项目打包到lpk包中
程序首先会运行buildscript中的脚本(可能是bash命令,也可能是.sh文件)
然后将文件打包进一个.lpk包

6.安装到懒猫微服

使用lzc-cli app install将lpk安装到懒猫微服中

7.运行应用

在懒猫微服客户端打开应用,系统会直接访问lzc-manifest.yml里设置的application.route中/所指定的路由。
如果是exec:格式的路由,比如: - /=exec:// {端口},{脚本}
系统会在运行指定的启动脚本后访问指定的端口,所以对于应用后端的初始化及启动命令可以放在这个脚本里。
其实在你的应用安装好后,它就自动开始运行了,所以安装依赖和初始化是在你点开图标之前就已经在做了,所以新安装的应用启动通常要稍久一点。

其他

最后抛开上面的流程,也抛开官方技术,说点我自己这个小白(白痴的白)走的弯路:

1.路由:我一开始完全没有理解路由机制,就从参考样例开始折腾,抱着搞网站的思路,非要搞一个前端和一个后端的感觉,但其实绝大多数项目并不需要前后端分离成两个路由。

2.启动脚本:我在devshell里尝试的node应用没问题了,打包应用时突然卡住了,要怎么搞npm run start啊?好像不会自动启动……后来才搞清楚一下要搞个run.sh做启动脚本(也可能有自启机制?),而且我把启动脚本放在某个文件夹中,结果总是说找不到,我也不知怎么搞的。后来就放根目录没毛病。

3.依赖:alpine实在是太干净了,在本地好容易在AI指导下搭的环境,devshell里也装了,结果应用启动时还要安装,这种就是前文大神们的常识,但在我原本的理解里其实有点奇怪的。

4.权限:我之前几个零散的小应用是在Mac里写的,所以没有什么感觉。近来因为换了Windows,又折腾不太会WSL,就直接在Powershell里打包。结果打包了应用不能运行,甚至官方的Helloworld我这里都试不成功。排查了一整天,才发现日志里明明写着启动脚本没有执行权限!问了AI,原来windows是没有linux的执行权限的,即使在WSL里做了chmod,回到windows打包一样不行。最后的方法是在我的旧Mac机里打包,一点问题没有!

这些也不算什么坑,给大家看看我闹的笑话而已。

下一篇我打算直接Vibe出一个用于测试的懒猫应用来。

相关链接:

立即体验

喵爸的博客

@copyright 2025-2026

喵爸的博客

@copyright 2025-2026

喵爸的博客

@copyright 2025-2026

Create a free website with Framer, the website builder loved by startups, designers and agencies.