以观书法
108.85M · 2026-02-05
我手里有一个非常简单的 C Sharp 项目,它将一个JSON字符串转换成Excel。它有两个我认为致命的缺点:
于是我打算把它改造成 Tauri2 的项目。
我首先想到的就是在 C Sharp 项目中使用 TRAE 的 @Builder with MCP 一步一步创建出符合我需求的 Tauri2 项目。
听起来很美好吧?但现实是,频繁地构建失败以及界面绘制出错:
过程不演示了,白折腾一上午。
敲代码超过一坤年的朋友们都知道,入门文档只会教给你 Hello World ,而实际需求的难度堪比SpaceX的“筷子夹火箭”。所以官方给出的脚手架一定不是一个好用的脚手架,真正好用的脚手架来自于大神们的热心分享,于是我翻出来之前就找到的一个开源项目:
HuLaSpark/HuLa
它非常庞大,但是它给出来的很多有益的内容,比如 scripts 目录下的构建脚本、 package.json、Cargo.toml 中已经测试过可靠的依赖……
随即我按照 官网给出的教程,使用 pnpm create tauri-app 创建了最初的项目。
创建完成后,我需要安装一些必备的 VSCODE 插件:rust-analyzer、Tauri、Even Better TOML。
我将 package.json 与 Cargo.toml 中的依赖项原封不动地复制了过来,接下来就是 pnpm install 。
我通过截图让TRAE生成了前端页面,这对于它来说真的属于舒适区!
由于大模型更倾向于写JS、Python这类的脚本语言。所以我必须告诉他,本次的生成Excel必须由Rust进行编码,由我人为地将每个部分对应的之前的 C Sharp 代码告知它(其实就俩函数):
如此,项目总算是跑起来了。一些小问题,修修补补,一两天时间,项目就搞完了。
接下来就是发布1.0.0版本了,发版的时候,我还是推荐使用 release-it
{
"devDependencies": {
...
"release-it": "^19.0.6",
...
}
}
我们可以在根目录编写 .release-it.json 以实现 Rust、Tauri 部分的版本修改:
{
"github": {
"release": false
},
"git": {
"commitMessage": "chore: release ${version}",
"tagName": "v${version}"
},
"npm": {
"publish": false
},
"hooks": {
"after:bump": [
"node -e "const fs = require('fs'); const version = require('./package.json').version; const cargoToml = fs.readFileSync('./src-tauri/Cargo.toml', 'utf8'); const updatedCargoToml = cargoToml.replace(/version = \"[0-9]+\.[0-9]+\.[0-9]+\"/, `version = \"${version}\"`); fs.writeFileSync('./src-tauri/Cargo.toml', updatedCargoToml); console.log('Updated Cargo.toml version to', version);"",
"node -e "const fs = require('fs'); const version = require('./package.json').version; const tauriConf = JSON.parse(fs.readFileSync('./src-tauri/tauri.conf.json', 'utf8')); tauriConf.version = version; fs.writeFileSync('./src-tauri/tauri.conf.json', JSON.stringify(tauriConf, null, 2)); console.log('Updated tauri.conf.json version to', version);""
]
}
}
使用的方式非常简单,就是在 package.json 中的 "scripts" 新增一行:
{
...
"scripts": {
...
"release": "release-it",
...
}
}
然后你就可以在命令行里使用了:
pnpm release
| 时间 | 内容 |
|---|---|
| 2026年2月4日 | 完成初稿 |