使用 Turborepo、Next.js、TailwindCSS、NestJS 等进行现代 Web 开发
内容提要
这篇文章介绍了一个NFT市场的Github项目,作者使用了多种工具创建了一个简单的响应式应用。文章提供了安装和运行的指南,并介绍了项目的特性和工具。作者还提到了Turborepo的功能和使用方法。
延伸解读
项目定位:学习实验而非生产级应用
作者明确表示该项目主要是为了学习和实验各种工具,因此并不完美。这意味着代码可能未经过充分测试和优化,不适合直接用于生产环境。读者应将其视为一个参考示例,了解如何组合 Turborepo、Next.js、NestJS 等技术栈,而不是一个完整的商业解决方案。
包管理器选择与配置注意事项
项目推荐使用 pnpm,但也可以使用 yarn 或 npm。如果选择 yarn 或 npm,需要手动修改根目录 package.json 中的 packageManager 字段,并将所有 package.json 文件中的 "workspace:*" 替换为 "*",因为只有 pnpm 支持 workspace 协议。这些步骤容易出错,需仔细操作。
运行与端口分配细节
项目包含三个应用:api(端口3002)、web(端口3000)和 docs(端口3001)。可以同时运行所有应用,也可以使用 --filter 参数单独运行。注意,如果同时运行,docs 应用可能先于 web 应用启动,导致端口互换,此时 docs 会占用3000端口,web 占用3001端口。
未来功能与远程缓存
作者列出了可能添加的功能,如身份验证、API 改进、SEO、国际化、可访问性、测试和性能优化,但这些都处于“可能”阶段,尚未实现。此外,Turborepo 支持远程缓存,需使用 Vercel 账户,通过 turbo login 和 turbo link 命令启用,以便在团队和 CI/CD 中共享构建缓存。
Q&A
这个NFT市场项目使用了哪些主要工具?
该项目使用了Turborepo、Next.js、NestJS、Prisma和TailwindCSS等工具。
如何安装和运行这个NFT市场项目?
首先克隆项目,设置环境变量,然后使用pnpm、yarn或npm安装依赖,最后运行相应的命令启动应用。
Turborepo的远程缓存功能有什么用?
Turborepo的远程缓存功能可以在不同机器之间共享构建缓存,方便团队和CI/CD管道使用。
项目未来可能增加哪些功能?
未来可能增加的功能包括身份验证、API改进、SEO、国际化等。
推荐使用哪个包管理器来运行这个项目?
推荐使用pnpm作为包管理器,但也可以使用yarn或npm。
这个项目的API提供了哪些路由?
API提供了多个路由,包括获取创作、类别和用户等信息的路由。