问题标签 [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.
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 配置或类似的东西。
任何提示或想法,我可以尝试什么?
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”
nrwl - 在 NRWL/NX 环境中使用 GraphQl 和 MongoDB 模式作为库
我对 NRWL/NX 世界还很陌生。我在这里想要完成的是,将 GraphQL(与 MongoDB 一起)用于 API。过去,我在非 NRWL 环境中使用 MongoDB 创建了 GraphQL 项目。然而,由于现在我们有多个项目,我们正在转向 NX。
有几个 MongoDB 模式在多个项目中使用,所以我决定将它们用作库。我生成了一个库并添加了以下代码
MongoDB 模型非常标准。
如何通过DatabaseModule访问 mongodb 模型,请建议。
谢谢-N Baua
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 应包含所有源文件”
nrwl - 如何在 Nrwl NX 工作区中使用 CSS 模块?
我正在将一个旧的 React/Webpack 项目重构为 Nrwl 的 NX monorepo 解决方案。在该项目中使用了 css 模块。
例如,样式以这种方式导入:
并像这样使用:
这在 NX 中不起作用,因为style
在运行时是一个空对象,所以所有类名都在实际输出中消失了。
有没有办法让 CSS 模块与 NX 一起工作?
angular - Angular 8:使用库构建 monorepo 应用程序的更好方法
我的 Angular monorepo 项目中有几个应用程序。此外,我还编写了大约 5 个库以供跨应用程序使用。
我想知道的是如何更好地构建/架构这些库。
ins如下:
- 库仅供内部使用(意味着不发布或在其他应用程序中使用,但
projects
文件夹中的应用程序) - 库具有不同的依赖项,例如
lodash
和RxJs
- 一个库可以在其内部导入另一个库
到目前为止我所做的:
umdModuleIds
在每个库的ng-package.json
.peerDependencies
在外部库上指定,例如lodash
和RxJs
- 设置我的应用程序构建,其中包含通过“&&”组合
prebuild
的大约 5 个命令ng build lib-name
- 我用下一种方式导入 Lodash
import { cloneDeep } from 'lodash'
现在我看到我的main.js
块比将一些服务/组件/功能提取到外部库之前要大得多。现在main.js
产品构建的大小是 2.1 Mb,在我看来太大了。
另外,我不确定是否值得为每个库(UMD、FESM2015、FESM5)制作 3 个不同的版本。
我按照文档中的建议从 dist 文件夹导入库,遵循下一个表单import { LibService } from 'lib'
。
angular - 在 Ngrx-nx Monorepo 中管理共享样式和资产
我正在尝试在 nrwl-nx monorepo 中设置共享样式和资产(即字体)以用于库和应用程序。
我想要的结果是有一个图书馆“主题”,提供
- 共享样式
- scss 变量和 mixins
- 字体
对于其他库和应用程序。
对于 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
。但是在引用字体样式表中的字体时,我无法弄清楚要设置的正确路径:
我错过了什么?
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
错误)
有人遇到同样的问题并知道解决方案吗?
angular - 找不到“create-nx-workspace”命令(linxus 和 windows10 问题)
有人可以解释一下如何设置 nrwl/schematics 吗?我正在尝试学习前端大师的课程,他们正在使用 nrwl 生成工作空间。当我在我的机器(Windows 和 linux 操作系统)上运行相同的命令时,找不到该命令
创建-nx-workspace someName
请帮助我设置此工作区并了解我收到此错误消息的原因。在 Windows 上,我知道这通常意味着(无法识别的 cmdlet)未定义可执行文件的路径,但我不知道路径应该在哪里,也找不到答案。
任何帮助都非常感谢。问候
到目前为止,我已经尝试将@nrwl/schematics 安装为 roo/administrator,重新安装,重新启动 PC,在 Linux 和 Windows 上尝试了 stpes
angular - 在现有 Angular 应用程序上添加 Nrwl Nx 后 ng g 应用程序将应用程序添加到错误的目录中
我有一个使用 Angular CLI 创建的现有且已经很强大的 Angular 应用程序。
按照此处找到的说明,我将其设为 Nrwl Nx 工作区。
我跑了
它创建了一个apps
andlibs
文件夹,在apps
文件夹里面有 amy-app
和 a my-app-e2e
,都很完美。
然后,按照此处找到的说明,我跑了
期望在我的文件夹中创建一个应用程序apps
,就像已经存在的一样,但它在根级别创建和another-app
文件夹(其中包含src
和文件夹),与and相同的级别。e2e
apps
libs
我angular.json
的更改正确,我可以通过它们的名称(ng s my-app
和ng s another-app
)为这两个应用程序提供服务。
这是预期的行为吗?原因,如此处所示,显然当您创建一个项目时
然后开始添加应用程序
所有应用程序都进入apps
文件夹。