扫一扫分享
Nx是前Google的angular团队成员Jeff Cross和Victor Savkin创办的,致力于新一代的智能化、可扩展的构建框架。
用于管理Monorepo 非常合适,下面我们可以快速的利用Nx命令行创建一个Monorepo的项目。
Nx 是一个用来构建 monorepos 的开发工具。自己从 Angular 6.X 版本的时候开始尝试使用 Nx 管理项目代码,那时候的 Nx 还只支持对 Angular 框架的扩展,现在的 Nx 添加了对 react 框架的支持,并且可以集成使用 Cypress, Jest, Prettier, TypeScript 等现在构建工具,支持 NestJs (一款 nodejs 后端框架),完成了对整个全栈生态的覆盖。
monorepo 是一种组织管理代码的方法,从字面上来理解就是把与一个项目关的 package、module、project等都放在一个仓库中进行管理。与之相对应的管理方式是 multirepo,把与项目相关的业务拆分成不同的 module 或者 package 放在不同的仓库中,彼此之间独立维护。
为了更好的体验Nx命令行所带来的变化,每一步都用git记录了,并且上传到了github上。
npm install -g nx
# or
yarn add global nx
# or
tyarn add global nx
设置包含 React 应用程序的 Nx 工作区。
npx create-nx-workspace@latest stores --preset=react
命令输入之后,会有个选择框。使用命令后生成了一个vscode项目
nx serve stores
控制台和浏览器的输出界面
现在Monorepo只有一个项目,现在在添加一个blog项目
yarn add @nrwl/next
nx generate @nrwl/next:app blog
之前可以看出,Nx生成的模板项目中已经默认生成了一些测试代码,甚至连e2e测试框架都生成了。
## Unit test
nx test bike-store
项目的开发和test我们已经做过了,接下来可以看构建了
# 对所有项目进行编译
nx run-many --target=build --all
至此我们一个基本的Monorepo项目已经搭建完成了,包含了开发、测试、编译三个流程。
手机预览