Wasp - 用于构建全栈网站的元框架


一个看起来比较有趣的项目。构建网站的时候通常有很多重复工作(登录/鉴权/邮件…)。为了减少重复,作者提出了一种元框架,在现有的前后端框架之上再叠加一层,写一些 DSL 来定义一个“网站”,然后再通过一个自定义的“编译器”生成底层的框架结构。

虽然感觉能解决一些常见问题,但是如果不能满足需求的话,自定义起来可能会是灾难。

DSL 示例如下:

app todoApp {
  title: "ToDo App",  // visible in the browser tab
  auth: { // full-stack auth out-of-the-box
    userEntity: User, 
    methods: { google: {}, gitHub: {}, email: {...} }
  }
}

route RootRoute { path: "/", to: MainPage }
page MainPage {
  authRequired: true, // Limit access to logged in users.
  component: import Main from "@client/Main.tsx" // Your React code.
}

query getTasks {
  fn: import { getTasks } from "@server/tasks.js", // Your Node.js code.
  entities: [Task] // Automatic cache invalidation.
}

src: https://wasp.sh/