为啥 nrwl nx 为每个应用程序创建一个单独的 e2e 项目?
Posted
技术标签:
【中文标题】为啥 nrwl nx 为每个应用程序创建一个单独的 e2e 项目?【英文标题】:Why does nrwl nx create a separate e2e project for each app?为什么 nrwl nx 为每个应用程序创建一个单独的 e2e 项目? 【发布时间】:2019-01-16 16:28:10 【问题描述】:当创建一个新的 nx 工作区(即使用 create-nx-workspace)然后生成一个应用程序(使用 ng g app)时,它会在应用程序文件夹内创建一个应用程序文件夹(到目前为止一切顺利)以及另一个 app-e2e文件夹,也在应用程序文件夹内。 在我看来,在 src 文件夹旁边的 app 文件夹中创建一个 e2e 文件夹会更有意义,因为 e2e 测试应该属于那个特定的应用程序,而且它不会那样弄乱应用程序文件夹。
那么这个约定背后的原因是什么?
非常感谢!
【问题讨论】:
【参考方案1】:这个约定背后的原因是什么?
事实证明,这实际上是由于 Angular 6 CLI 造成的。 Nx 只使用内置的角度示意图。我最初并没有意识到这一点,但您可以通过在 app1 中使用 ng new app1
和 ng generate application app2
创建一个新应用程序来验证此行为。 app1
是使用常规结构创建的,而app2
和兄弟app2-e2e
是在app1
内的默认projects
目录中创建的。
最初,我和你有同样的问题。我一直在我的 nx 工作区中手动重组每个新生成的应用程序,以便 e2e 文件夹位于其各自的应用程序文件夹内。这导致我在 nx 存储库中创建了一个 feature request。在我为这个功能打开 a PR 之后,我向我解释了底层的 Angular CLI 6 约定。
【讨论】:
以上是关于为啥 nrwl nx 为每个应用程序创建一个单独的 e2e 项目?的主要内容,如果未能解决你的问题,请参考以下文章
nrwl/nx 原理图创建 Angular 应用程序并配置 Angular json