Free. Open source. Browser-based.
免费。开源。基于浏览器。
- 网格布局
- 书籍内搜索
- 图片预览
- 自定义排版
- 高亮和注释
- 主题
- 通过链接分享/下载书籍
- 数据导出
- 云存储
- AI 大语言模型 (LLM) 集成:可以直接在阅读时选中文字询问AI,获取智能解释和总结
git clone https://github.com/pacexy/flowpnpm i这个项目是一个基于 pnpm 和 Turborepo 的 JavaScript/TypeScript 单体仓库(monorepo)。主要工具包括:
- pnpm - 快速、节省磁盘空间的包管理器
- Turborepo - 高性能的 JavaScript/TypeScript 单体仓库构建系统
- Next.js - React 应用框架
- React - 用户界面库
- TypeScript - JavaScript 类型检查
- Tailwind CSS - CSS 框架
- Docker - 容器化平台
- Husky - Git hooks 管理
- 以及其他 更多工具
# 基本开发(并行运行所有包的开发服务器)
pnpm dev
# 构建所有包
pnpm build
# 运行 lint 检查
pnpm lint
# 格式化代码
pnpm format
# 检查代码格式
pnpm format:check
# TypeScript 类型检查
pnpm type-check
# 清理构建产物
pnpm clean
# 完全清理(包括 node_modules)
pnpm clean-all# 为特定包运行开发命令
pnpm --filter reader run dev # 只运行 reader 应用
pnpm --filter website run dev # 只运行 website 应用
pnpm --filter epubjs run test # 只运行 epubjs 包的测试# 构建 Docker 镜像
pnpm docker:build
# 启动 Docker 容器(后台运行)
pnpm docker:up
# 查看容器日志
pnpm docker:logs
# 重启容器
pnpm docker:restart
# 停止容器
pnpm docker:down将所有 .env.local.example 文件复制并重命名为 .env.local,然后设置环境变量。
在 .env.local 中,您可以配置 LLM 相关环境变量,例如:
NEXT_PUBLIC_LLM_API_BASE_URL=https://api.openai.com/v1/chat/completions
NEXT_PUBLIC_LLM_API_KEY=your_openai_api_key
NEXT_PUBLIC_LLM_MODEL_NAME=gpt-3.5-turbo
NEXT_PUBLIC_LLM_SYSTEM_PROMPT=You are a helpful assistant.您也可以在应用程序设置页面中动态配置 LLM 参数。
pnpm dev自托管前,您需要配置环境变量。
您可以使用 docker-compose:
docker compose up -d或手动构建镜像并运行:
docker build -t flow .
docker run -p 3000:3000 --env-file apps/reader/.env.local flow您可以通过多种方式参与此项目,例如:
以下是项目中使用的所有工具的完整列表:
- pnpm - 快速、节省磁盘空间的包管理器
- Turborepo - 高性能的 JavaScript/TypeScript 单体仓库构建系统
- Webpack - 模块打包工具 (用于 epubjs 包)
- Babel - 现代 JavaScript 特性编译器
- Node.js - JavaScript 运行时环境
- Next.js - 生产应用的 React 框架
- React - 用户界面构建库
- React DOM - React DOM 操作包
- Recoil - React 状态管理库
- SWR - React 数据获取库
- Valtio - 基于代理的状态管理库
- Dexie - IndexedDB 封装库
- Dexie React Hooks - Dexie 的 React hooks
- Tailwind CSS - 实用优先的 CSS 框架
- PostCSS - CSS 处理工具
- Autoprefixer - CSS 厂商前缀添加器
- clsx - 条件构造 className 字符串的工具
- react-icons - React 图标组件
- react-focus-lock - 容器内焦点锁定工具
- react-photo-view - 图片查看器组件
- react-cool-virtual - 虚拟滚动解决方案
- react-highlight-words - 文本中高亮指定词汇
- @literal-ui - UI 组件库 (core, hooks, next)
- M3 Tokens - Material Design 3 设计令牌
- LocalForage - 离线存储库
- JSZip - 创建、读取和编辑 zip 文件
- FileSaver - 浏览器文件保存
- UUID - 唯一标识符生成器
- Nookies - Next.js cookie 工具
- Husky - Git hooks 管理器
- Lint-staged - 预提交钩子运行器
- ESLint - JavaScript 代码检查工具
- Prettier - 代码格式化工具
- TypeScript - JavaScript 类型检查
- Mocha - JavaScript 测试框架
- Karma - JavaScript 测试运行器
- Day.js - 时间/日期操作库
- @xmldom/xmldom - XML DOM 解析器
- Core-js - JavaScript 标准库
- next-seo - Next.js SEO 管理
- next-translate - Next.js 国际化
- Lodash - 实用工具库
- Event-emitter - 事件处理模式
- Marks-pane - 文本测量工具
- React-use - React hooks 集合
- Path-webpack - 路径操作
- @github/mini-throttle - 节流工具
- Dropbox - Dropbox API 客户端
- OpenAI - OpenAI API 客户端库
- Sentry - 错误跟踪和监控 (Next.js 集成)
- Cross-env - 跨平台环境变量设置
- Terser-webpack-plugin - Webpack JavaScript 压缩工具
- Babel Loader - Webpack Babel 加载器
- Raw-loader - Webpack 原始文本加载器
- webpack-dev-server - Webpack 开发服务器
- Documentation.js - 文档生成器
- JSDoc - JavaScript 文档生成器
- TSD-JSDoc - TypeScript 声明文件的 JSDoc 工具链
- @types - 各种库的 TypeScript 类型定义
- node, react, react-dom, file-saver, uuid, localforage, react-highlight-words
- Docker - 容器化平台
- Docker Compose - 多容器 Docker 应用