378 - 《Rust 项目的工程化》

发布于 2023年11月27日

1、项目的 Rust 版本可以在 rust-toolchain.toml 里声明且可以考虑用 nightly 版。比如写构建工具的应该都是用的 nightly,因为大家都重度依赖 swc,而涉及 ast 操作时有 box_patterns feature 提供的 box 析构写起来会简洁很多。这个 feature 目前只在 nightly 里提供。比如。

#![feature(box_patterns)]
if let ModuleItem::Stmt(Stmt::Expr(ExprStmt {
    expr: box Expr::Call(CallExpr { args, .. }),
    ..
})) = stmt {}

2、前端任务大家都是用 package.json 的 scripts 管理,而 rust 下,常用做法是用 just + tasks crates 来管理。just 在 justfile 里声明任务,支持 alias,支持组合等,配置上比 package.json scripts 灵活;然后在项目下新增 tasks 目录,里面的 crates 是 rust 编写的脚本,用于实现自定义任务。

#!/usr/bin/env -S just --justfile

_default:
  @just --list -u

alias r := ready

init:
  cargo binstall cargo-edit

ready
  typos
  cargo fmt
  just test

3、cargo-binstall 和 cargo install 类似,其中的 b 表示 Binar

内容预览已结束

此内容需要会员权限。请先登录以查看完整内容。