问题标签 [nrwl-nx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
263 浏览

reactjs - 在 nx 工作区中创建反应应用程序失败 - 找不到纱线

我正在关注有关创建反应应用程序的 NX 教程(此处),但出现错误:

我使用带有节点 v10.15.3 和 npm 6.10.1 的 Ubuntu 19.04。你知道这个配置有什么问题吗?

0 投票
0 回答
88 浏览

angular - Does NX need to be installed globally by people who only want to run the app / e2e tests?

I created a workspace for React using @nrwl/nx. Now, if anyone clones my repo, do they also need to have nx installed globally?

And if not, how can they run stuff, say the e2e tests? When nx would be installed globally, they would do nx e2e myapp-e2e. I tried to run stuff in powershell instead (where I do not have nx installed globally) of the subsystem linux cli (where I do have nx installed globally). I got the error that the command nx could not be found. I tried to run with npx (npx nx e2e myapp-e2e) but with no luck.

Any thought on how to make this work for people who want to use my repo simply to run the app and the tests (and who are otherwise not interested in running nx globally)?

0 投票
2 回答
1329 浏览

google-cloud-build - 为数组的每个结果运行 Google Cloud Build 命令

我有一个包含多个 Angular 应用程序的 Nx 工作区。当 master 在我的 GitHub 存储库中更新时,我希望开始构建。使用 GCB 的触发器,这部分很容易。但我想要发生的是运行这个命令:

在触发器上,并为每个受影响的应用构建 Docker 映像并将其推送到 Google Container 注册表。到目前为止,我的 cloudbuild.yaml 文件如下所示:

该命令返回如下结果:

我不确定如何处理 Google Cloud 的结果。使用节点脚本,我可以执行以下操作来打印出一系列受影响的应用程序:

这将返回受影响应用程序的数组,如果出错则返回 null。尽管如此,即使如此,我仍然不确定下一步我会为 Google Cloud 构建做什么。使用命令或该脚本的结果,理想情况下,我可以运行 docker build 命令,如下所示:

:loop variable:受影响的应用程序的名称在哪里。我想对数组中的每个值执行此操作,如果由于某种原因该命令未返回任何受影响的应用程序,则不执行任何操作。

关于如何将 Google Cloud Build 与 Nx Workspaces 结合使用的任何想法,或者如果您刚刚获得了 Google Cloud 构建经验并且知道我的下一步应该是什么,那就太好了。

0 投票
1 回答
780 浏览

angular - 从 WebStorm Jest Testrunner 开始,Jest 单元测试不起作用

我正在使用 WebStorm 2019.2、Angular 8 和最新的 nrwl monorepo。开始 Angular 测试时ng test <app-name>一切正常。如果我尝试从 WebStorm 中运行测试(通过单击编辑器中的绿色三角形),我会收到以下错误:

我尝试了几个小时的谷歌搜索以找到解决该问题的方法,但没有成功。知道如何解决这个问题吗?

PS:monorepo 还托管了一个 NestJS 服务器。在 WebStorm 中运行单个测试适用于 NestJS 应用程序。

0 投票
1 回答
167 浏览

angular - 不同应用程序之间的重定向或路由

在 nrwl 示意图中创建了不同的应用程序:

  • 学院
  • 组织
  • 学生

有一个功能(lib)说,“createStudents”,它在学生应用程序中,并且需要在教师应用程序中实现相同的功能,为此有两种方法:

  1. 将 createStudents 库复制到 Faculty 应用程序中。
  2. 从教师重定向到学生应用程序。

由于第一种方法会重复代码,我们可以使用第二种方法吗?如何实现?对于第二种方法,我遵循以下 URL,但它不起作用: https ://medium.com/@tomastrajan/why-and-how-to-lazy-load-angular-libraries-a3bf1489fe24

0 投票
2 回答
7080 浏览

nestjs - 在 nx 构建/部署上生成 package.json

我有一个使用 nx 和多个 node/nestjs 应用程序的 monorepo。某些应用程序不需要其他应用程序中使用的所有包。因为它是一个 monorepo,所以我需要在部署期间为每个应用程序安装所有包。

有没有办法在构建时生成一个 package.json,它只包含我正在构建的应用程序所需的包?

我尝试使用“generate-package-json-webpack-plugin”来生成 package.json,但它只检测到一半的依赖项。

我还尝试构建一个包含所有应用程序的单个 js 文件,但它似乎不起作用并且总是需要 tslib。

0 投票
0 回答
45 浏览

angular - 如何为所有应用程序提供有能力的 styles.scss?

我使用NX来组合几个角度项目。styles.scss我在应用程序目录中创建全局

来自 styles.scss 的样式可以在应用程序目录中使用,但它们在 libs 目录中不可用。请帮我修复它。

0 投票
1 回答
190 浏览

nrwl-nx - nrwl nx React 教程令人困惑

遵循nrwl react的入门文档和教程。文档让您运行特定命令,然后显示应创建的文件夹结构。我没有看到相同的文件夹结构。(以及一些其他问题)。

根据显示的图像,运行nx g @nrwl/react:lib --project=ui应导致以下结构:

workspace/libs/ui/src/lib/ui/(ui.css, ui.spec.tsx, ui.tsx)

相反,我得到:

workspace/libs/ui/src/lib/(files, etc.)

没有第二个 UI 文件夹。此外,文档展示了如何使用nx g @nrwl/react:component todos --project=ui. 完成后,我应该具有以下结构:

workspace/libs/ui/src/lib/todos/(todo files)

再次,我得到了一个结构:

workspace/libs/ui/src/lib/(todo files)

没有待办事项文件夹。它只是将所有组件文件放在一个目录中workspace/libs/ui/src/lib/

我知道生成命令可以带一个--directory参数,这会产生预期的结果。所以我主要想知道我是否做错了什么或者文档不同步。

0 投票
1 回答
484 浏览

angular - 如何仅在特定项目上运行 nx dep-graph

我正在开发一个使用单一回购结构的系统。我们使用 Nx 作为管理工作空间的工具。这个工作空间由几个加载到单个门户应用程序中的功能项目组成。

使用 Nx 时,我想只对单个项目运行深度图分析,以显示其依赖库而不显示不相关的项目。

当前的 nx cli 可以做到这一点吗?

我尝试运行nx dep-graph my-project-name,但这仍然显示了整个工作区的输出

0 投票
1 回答
382 浏览

nrwl - Angular 控制台:无法创建库

我正在尝试在 Windows 上使用 Angular Console 的 v 8.1.0 创建一个新库。我得到的错误是“ENOENT: no such file or directory, mkdir "c:\path\to\my\workspace\libs\new_library_name"

"c:\path\to\my\workspace\libs"已经存在

new_library_name文件夹应该由 Angular 控制台创建

控制台运行的命令是ng generate @nrwl/angular:library new_library_name.

我尝试了不同的名称/路径,以管理员身份运行,在 VSCode 和独立控制台中运行。任何事情都没有运气。这曾经奏效。

此外,如果我创建文件夹c:\path\to\my\workspace\libs\new_library_name然后再次运行控制台,我会收到错误ENOENT: no such file or directory c:\path\to\my\workspace\ libs\new_library_name\ReadMe.md。当然自述文件不存在——它需要由控制台创建。

我做错了什么或在哪里看?