为什么nrwl / nx比棱角分明的@ 6 vanilia更好?

时间:2018-05-21 07:24:16

标签: angular nrwl

最大优势og nrwl/nx在一个项目中实现了多个工作区。 现在angular 6也支持它。 什么是nx超过角度@ 6的其他冒险行为?

4 个答案:

答案 0 :(得分:2)

nx很棒,我使用它是因为在一个大项目中有5个角度应用程序,而且我认为nrwl / nx是为复杂的企业应用程序制作的,因此,如果您有一个包含许多前端应用程序的大项目,会很有用,但是即使对于一个可以给您带来很多好处的单个应用程序,这也是nx的一些好处:

  • 对于共享相同package.json的所有应用,您将拥有一个monorepo,因此您必须为所有应用管理一次软件包
  • 更高的一致性和生产力
  • 您可以创建可以在应用程序之间共享的库,这样可以节省您的时间,并且团队表示,最好将所有逻辑代码放入libs中,即使它们不在应用程序之间共享也是如此
  • 如果将其与标准cli进行比较,则会提供更多代码生成选项
  • 您将拥有出色的路由和状态管理(ngrx)实现(正确的实现)
  • 缩短构建时间:使用nx,您将避免重新执行不必要的构建,因此,如果对lib进行一些更改,nx将确保仅依赖于它的应用程序才能构建。
  • nx的未来是拥有功能强大的Mono repo工具和强大的构建系统(nx的Bazel版本),并可能使您的项目可用于CI。

使用一个命令,您可以构建或测试受更改影响的应用程序

yarn affected:build --all --prod
yarn affected:test --all --prod

答案 1 :(得分:1)

它有一些工具可以帮助您只构建您进行更改的应用程序。因此,如果您在共享库中进行更改,则可以确定哪些应用程序使用该库项目并仅构建它们。

答案 2 :(得分:1)

就个人而言,我可以方便地调试我的库,并且在使用NX时不必构建它们即可使用它们。这是一个非常简单的项目,具有tsconfig的魔力,但确实使它变得更加容易。

另外,尽管它与Angular CLI 6的结构基本相同,但细微的差异对我来说更有意义。

答案 3 :(得分:1)

我在最近的两个工作中一直使用Nx并提倡Nx,并且(主要是)喜欢它。

我继续在普通Angular上使用它,因为他们不断添加新的工具,该工具支持更复杂的应用程序,并消除了建立现代javascript网络应用程序(即配置和设置地狱)带来的许多痛苦将现代Web开发库粘合在一起时。

他们致力于以一种支持而不是离开Angular的方式来开发产品,但是可以访问开发人员友好的工作流,这些工作流支持Angular CLI之外的其他工具。

例如,他们最近增加了对赛普拉斯e2e测试的支持,包括项目设置,用于运行测试的脚本以及仅在项目中受上次更改影响的位上运行测试的命令。

他们对请求也非常敏感,并且已经实现了团队成员建议的一些修复/次要功能。

总而言之,正是他们以惊人的速度向已经强大的Angular CLI发布闪亮的新附件,这使其成为引人注目的产品。

但是,如果您的应用程序不是很复杂,则可能不需要很多这些功能。

如果您有兴趣,我写了几篇文章,详细介绍了我过去的使用方式,最近还介绍了赛普拉斯的东西:

http://wtfisanapi.com/wtf-is-nrwl-nx/

http://wtfisanapi.com/htf-do-i-write-e2e-tests-with-a-stubbed-dependency-angular-nrwl-nx-edition/