news 2026/9/7 7:15:25

如何快速搭建 effect-smol 开发环境:pnpm monorepo 完整配置指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何快速搭建 effect-smol 开发环境:pnpm monorepo 完整配置指南

如何快速搭建 effect-smol 开发环境:pnpm monorepo 完整配置指南

【免费下载链接】effect-smolCore libraries and experimental work for Effect v4项目地址: https://gitcode.com/GitHub_Trending/ef/effect-smol

effect-smol是 Effect 团队实验 Effect v4 核心库的 monorepo 仓库,包含effect核心包、平台适配、AI、SQL、原子化状态等 30 多个子包。本文是一份面向新手的pnpm monorepo 配置教程,带你从安装依赖到跑通测试,用 5 步完成effect-smol 开发环境搭建

⚠️ 小提示:该仓库目前已归档为只读状态(见 README.md),但仓库内的工程结构对理解大型 pnpm monorepo 极具参考价值。

一、环境准备:确认 Node.js 与 pnpm 版本

在开始pnpm monorepo 配置之前,先确认两个前置条件:

工具版本要求说明
Node.js24+(推荐 26)本地可直接运行.ts文件,无需 tsx
pnpm10.17.1packageManager字段锁定

仓库根目录的 package.json 中通过packageManager字段声明了 pnpm 版本:

"packageManager": "pnpm@10.17.1"

开启 Corepack 后,pnpm 会自动对齐到该版本:

corepack enable

💡 仓库还附带了 Nix 配置 flake.nix,提供包含bundenonodejs_26corepack的开发者 shell,追求环境可复现的同学可以试试。

二、一键安装:克隆仓库并拉取依赖

使用 git 克隆仓库(仅此处提供仓库地址):

git clone https://gitcode.com/GitHub_Trending/ef/effect-smol cd effect-smol pnpm install

安装过程会处理两类特殊配置,均来自根 package.json:

  • 依赖补丁patches/目录下对@changesets/assemble-release-plan@changesets/get-github-info的本地补丁会被自动应用;
  • 构建白名单onlyBuiltDependencies只允许better-sqlite3执行原生构建脚本,其余原生依赖(esbuild、sharp 等)被忽略,安装因此又快又安全。

三、看懂结构:pnpm workspace 工作区划分

工作区定义在 pnpm-workspace.yaml,一眼就能看懂这个pnpm monorepo的组织方式:

packages: - ai-docs # AI 文档示例 - scratchpad # 本地试验场 - scripts # 工程脚本 - packages/* # 核心包 - packages/ai/* # AI 相关(openai / anthropic 等) - packages/atom/* # React / Solid / Vue 响应式绑定 - packages/sql/* # 各数据库驱动 - packages/tools/*# 代码生成与打包工具

各目录职责速览:

  • 📦核心库:packages/effect/src/ 是 v4 主干(当前版本 4.0.0-beta.98),包含 Effect、Stream、Schema 等模块;
  • 🌐平台适配packages/platform-nodepackages/platform-browserpackages/platform-bun提供不同运行时能力;
  • 🧪试验场:scratchpad/ 预置了全部 workspace 包依赖,是随手写代码的最佳位置;
  • 🔧工程化:scripts/ 下是 codemod、清理、文档生成等脚本。

TypeScript 编译由 tsconfig.base.json 统一约束:composite项目引用 + 增量编译,目标是 ES2022、NodeNext模块,并启用了strict全家桶。

四、日常开发:5 条最常用的 pnpm 命令

以下命令均定义在根 package.json 的scripts中:

命令作用
pnpm test启动 Vitest,支持传入文件做定向测试
pnpm check全仓库 TypeScript 类型检查(tsc -b
pnpm lint/pnpm lint-fixJSDoc 校验 + oxlint 静态检查 + dprint 格式化
pnpm codegen重新生成各包index.tsbarrel 文件(增删模块后必跑)
pnpm build编译所有包并构建产物

测试体系基于 Vitest 项目分组,入口是根 vitest.config.ts:它会自动收集packages/*下每个子包的vitest.config.ts,并根据当前运行时(Deno / Bun)自动排除不兼容的包,无需手动指定。

测试规范可参考 AGENTS.md:测试文件放在packages/*/test/,类型级测试放在packages/*/typetest/并用pnpm test-types <filename>运行。

五、快速验证:在 scratchpad 里跑一段代码

环境是否搭好,跑通一次才算数。在 scratchpad/ 中新建一个文件,用 Node 24 直接运行(无需编译):

node scratchpad/index.ts

AGENTS.md 中的建议正是如此:随手验证代码就丢进 scratchpad,跑完再删除,保持仓库整洁。

六、进阶可选:一键启动数据库测试环境

如果你要跑 SQL 或 Cluster 相关测试,仓库提供了 docker-compose.yaml,一键拉起本地 Postgres 与 Redis:

docker compose up -d
  • Postgres:5432端口,库名effect_cluster
  • Redis:6379端口。

七、常见问题 FAQ

Q1:pnpm install报错版本不匹配?先执行corepack enablecorepack prepare,让 pnpm 对齐packageManager锁定版本。

Q2:为什么index.ts内容看起来是自动生成的?barrel 文件由 codegen 生成,禁止手改——增删模块后运行pnpm codegen即可(规则见 AGENTS.md)。

Q3:改动后应该跑哪些校验?按最小覆盖原则:改代码 →pnpm lint-fix+ 定向pnpm test <文件>+pnpm check;改 JSDoc →pnpm lint。完整对照表见 AGENTS.md。

总结

effect-smol 开发环境搭建的关键就三步:

  1. ✅ Corepack 启用 pnpm 10,克隆仓库执行pnpm install
  2. ✅ 读懂 pnpm-workspace.yaml 的工作区划分,找到你要改的包;
  3. ✅ 用pnpm test/pnpm check/pnpm lint完成日常校验。

掌握这套pnpm monorepo 完整配置流程后,你可以把同样的模式迁移到任何大型多包 TypeScript 项目中。

【免费下载链接】effect-smolCore libraries and experimental work for Effect v4项目地址: https://gitcode.com/GitHub_Trending/ef/effect-smol

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/5 8:23:20

语音智能体评测体系构建与Grok Voice技术解析

在实际语音交互和智能体开发中&#xff0c;评估一个语音智能体的综合能力远比单纯测试语音识别或文本生成要复杂。它涉及从语音输入、语义理解、上下文管理、任务执行到语音输出的完整链路&#xff0c;任何一个环节的短板都会影响最终用户体验。近期&#xff0c;一个名为 Grok …

作者头像 李华
网站建设 2026/9/4 8:01:29

51单片机教室智能照明系统设计:DS1302时钟与红外计数实战

简介&#xff1a;本资源是一套完整的基于STC89C52单片机的教室智能照明控制系统设计资料&#xff0c;面向嵌入式初学者、课程设计学生及电子类毕业设计者&#xff0c;解决传统教室照明无法按人数、光照强度与作息时间自动调控的能耗与管理问题。压缩包共78个文件&#xff0c;涵…

作者头像 李华
网站建设 2026/9/5 7:05:47

AI口语陪练:从纠错工具到沉浸环境的范式演进与实践指南

你有没有过这样的经历&#xff1a;明明背了无数单词&#xff0c;语法书也翻烂了&#xff0c;可一到需要开口说英语的时候&#xff0c;大脑就一片空白&#xff0c;喉咙像被堵住一样&#xff0c;半天憋不出一句完整的话&#xff1f;或者&#xff0c;鼓起勇气对着手机App练习&…

作者头像 李华