问题标签 [nrwl]

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 投票
2 回答
4810 浏览

angular - 如何在 cypress typescript 项目中正确导入自定义命令?

在更新了我的核心依赖项 @nrwl/ 、 @angular/和 cypress 之后,我的 e2e 测试有点坏了。我收到以下错误:

import './command'; ^ ParseError: 'import' and 'export' may appear only with 'sourceType: module'.

赛普拉斯还显示此错误:在此处输入图像描述

这些是更新的依赖项: 在此处输入图像描述

在更新之前,我们只是直接从command.ts规范文件中的 -file 导入自定义命令。但也通过使用support/index.ts出现相同的错误,但随后在 index-file 中。

唯一有效(但实际上不能成为解决方案)的方法是将自定义命令移动到索引文件本身并删除导入语句。

而且由于我在 NX-Workspace 中运行这些测试,我无法直接访问任何 webpack 或 babel 配置或类似的东西。

任何提示或想法,我可以尝试什么?

0 投票
1 回答
2406 浏览

angular - 自版本 8 起,Nx 工作区 CLI 不允许创建纯 typescript 库

由于将我们的项目更新到 nx 工作区 8,库“ng g lib mylib”的生成不允许仅创建纯 typescript 库。

以前的问题是:“这个库应该使用什么框架?” 允许选择“TypeScript”以避免为库创建 UI 特定配置。

由于在版本 8 中已更改 ( https://nx.dev/guides/nx7-to-nx8 ) 到原理图,我正在寻找工作区的正确配置以避免创建和维护自定义原理图。

提前感谢您的建议。

手动删除配置文件中的相应条目:

删除 tsconfiglib.json 中的节点 ->

删除 jest.config.js 中的节点 ->

将 angular.js 中的“示意图”从“@nrwl/angular:component”更改为“@nrwl/schematics:component”

0 投票
1 回答
411 浏览

nrwl - 在 NRWL/NX 环境中使用 GraphQl 和 MongoDB 模式作为库

我对 NRWL/NX 世界还很陌生。我在这里想要完成的是,将 GraphQL(与 MongoDB 一起)用于 API。过去,我在非 NRWL 环境中使用 MongoDB 创建了 GraphQL 项目。然而,由于现在我们有多个项目,我们正在转向 NX。

有几个 MongoDB 模式在多个项目中使用,所以我决定将它们用作库。我生成了一个库并添加了以下代码

MongoDB 模型非常标准。

如何通过DatabaseModule访问 mongodb 模型,请建议。

谢谢-N Baua

0 投票
1 回答
1145 浏览

tsconfig - 使用 NX Monorepo 从另一个库导入构建库

情况就是这样。我正在使用 Nrwl NX Monorepo。我有 2 个库 lib-a 和 lib-b 都是通过 NX 创建的可发布库。现在我在 lib-a 中创建了一个 MyClass.ts。自然地,在workspace/tsconfig.json 路径下,NX 会为此lib-a 创建一个别名(“@workspace/lib-a”:[“libs/lib-a/src/index.ts”])。到目前为止,一切都很好。现在我们可以在工作空间/monorepo 中的任何地方使用这个类,方法是将它导入 "import { MyClass } from '@workspace/lib-a';

不幸的是,我们无法构建导入 MyClass 的 lib-b。当我们尝试这样做时,我们会收到以下错误。所以问题是我们如何构建 lib-b ?

PS NX monorepo 实际上不支持链接 2 个可发布库的这种常见场景,这似乎很奇怪。

“错误 TS6059:文件“d:/workspace/libs/lib-a/src/index.ts”不在“rootDir”下“d:\workspace\libs\lib-b\src”rootDir 应包含所有源文件”

0 投票
0 回答
1319 浏览

nrwl - 如何在 Nrwl NX 工作区中使用 CSS 模块?

我正在将一个旧的 React/Webpack 项目重构为 Nrwl 的 NX monorepo 解决方案。在该项目中使用了 css 模块。

例如,样式以这种方式导入:

并像这样使用:

这在 NX 中不起作用,因为style在运行时是一个空对象,所以所有类名都在实际输出中消失了。

有没有办法让 CSS 模块与 NX 一起工作?

0 投票
2 回答
8407 浏览

angular - Angular 8:使用库构建 monorepo 应用程序的更好方法

我的 Angular monorepo 项目中有几个应用程序。此外,我还编写了大约 5 个库以供跨应用程序使用。

我想知道的是如何更好地构建/架构这些库

ins如下:

  1. 库仅供内部使用(意味着不发布或在其他应用程序中使用,但projects文件夹中的应用程序)
  2. 库具有不同的依赖项,例如lodashRxJs
  3. 一个库可以在其内部导入另一个库

到目前为止我所做的:

  1. umdModuleIds在每个库的ng-package.json.
  2. peerDependencies在外部库上指定,例如lodashRxJs
  3. 设置我的应用程序构建,其中包含通过“&&”组合prebuild的大约 5 个命令ng build lib-name
  4. 我用下一种方式导入 Lodashimport { cloneDeep } from 'lodash'

现在我看到我的main.js块比将一些服务/组件/功能提取到外部库之前要大得多。现在main.js产品构建的大小是 2.1 Mb,在我看来太大了。

另外,我不确定是否值得为每个库(UMD、FESM2015、FESM5)制作 3 个不同的版本。

我按照文档中的建议从 dist 文件夹导入库,遵循下一个表单import { LibService } from 'lib'

0 投票
1 回答
6990 浏览

angular - 在 Ngrx-nx Monorepo 中管理共享样式和资产

我正在尝试在 nrwl-nx monorepo 中设置共享样式和资产(即字体)以用于库和应用程序。

我想要的结果是有一个图书馆“主题”,提供

  1. 共享样式
  2. scss 变量和 mixins
  3. 字体

对于其他库和应用程序。

对于 1. 和 2. 我在这里找到了一个很好的答案:How to manage SCSS stylesheets across a monorepo with different libraries sharing variables?

Tim Consolazio 提出了一种很好的(并且受 Nrwl 启发)方法来处理跨 monorepo 的共享样式。基本思想是有一个入口点 scss inlibs/theme/scss/src/lib/theme.scss被导入apps/myapp/src/styles.scss. 这工作正常。

我遇到的困难是让它与提供要在共享样式中使用的字体一起工作,即我有一个libs/theme/scss/src/lib/fonts.scss从主题库中的资产文件夹中导入字体的工具。

项目结构为

目标是在themes库中拥有资产。我尝试添加到architect.build.assets数组中angular.json。但是在引用字体样式表中的字体时,我无法弄清楚要设置的正确路径:

我错过了什么?

0 投票
1 回答
280 浏览

angular - Nx cypress - 添加用于可视化测试的自定义插件

我正在尝试从 cypress https://docs.cypress.io/plugins/#visual-testing但在 nrwl nx monorepo 中设置一个可视化测试插件。

我遵循https://github.com/meinaart/cypress-plugin-snapshots中的指南,但无法使其工作。

实际结果是 toMatchImageSnapshot 不起作用(我有is not a function错误)

有人遇到同样的问题并知道解决方案吗?

0 投票
6 回答
7062 浏览

angular - 找不到“create-nx-workspace”命令(linxus 和 windows10 问题)

有人可以解释一下如何设置 nrwl/schematics 吗?我正在尝试学习前端大师的课程,他们正在使用 nrwl 生成工作空间。当我在我的机器(Windows 和 linux 操作系统)上运行相同的命令时,找不到该命令

创建-nx-workspace someName

请帮助我设置此工作区并了解我收到此错误消息的原因。在 Windows 上,我知道这通常意味着(无法识别的 cmdlet)未定义可执行文件的路径,但我不知道路径应该在哪里,也找不到答案。

任何帮助都非常感谢。问候

到目前为止,我已经尝试将@nrwl/schematics 安装为 roo/administrator,重新安装,重新启动 PC,在 Linux 和 Windows 上尝试了 stpes

0 投票
1 回答
1534 浏览

angular - 在现有 Angular 应用程序上添加 Nrwl Nx 后 ng g 应用程序将应用程序添加到错误的目录中

我有一个使用 Angular CLI 创建的现有且已经很强大的 Angular 应用程序。
按照此处找到的说明,我将其设为 Nrwl Nx 工作区。

我跑了

它创建了一个appsandlibs文件夹,在apps文件夹里面有 amy-app和 a my-app-e2e,都很完美。

然后,按照此处找到的说明,我跑了

期望在我的文件夹中创建一个应用程序apps,就像已经存在的一样,但它在根级别创建和another-app文件夹(其中包含src和文件夹),与and相同的级别。e2eappslibs

angular.json的更改正确,我可以通过它们的名称(ng s my-appng s another-app)为这两个应用程序提供服务。

这是预期的行为吗?原因,如此处所示显然当您创建一个项目时

然后开始添加应用程序

所有应用程序都进入apps文件夹。