问题标签 [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.
angular-cli - ng build --aot 失败,但 ng build 与已安装的库一起工作正常
我们有一个库项目,它位于我们发布到 npmjs 的 nx 项目中。它是从@angular/material 派生的组件的集合。该库已发布到 npmjs @vdlx/vdl-angular。
我们的构建使用 ng-packagr 根据它们的依赖关系依次构建每个组件。
当从 npm 安装到干净的 angular-cli 或 nx 项目中时,该ng build
命令工作正常,但ng build --aot
失败并出现错误。
在库 nx 项目中,使用 aot 构建应用程序可以正常工作,可能是因为它从源代码(与 node_modules 或项目 /dist 文件夹)获取组件。
这是针对该问题的简单重新创建:https ://stackblitz.com/edit/angular-hrvy5y?file=src%2Fapp%2Fapp.module.ts 。
它肯定在 stackblitz 中有效。在本地安装项目并运行ng build --aot
失败。
我怀疑我们的库中缺少 angular-cli 项目期望的东西。到目前为止,我一直在尝试使用消费应用程序,但那里没有乐趣。
欢迎提出建议。
sass - 如何使用特定于应用程序的值覆盖共享库中的 sass 变量
给定具有以下布局的 Nx monorepo (angular-cli)
在共享库中有一个 variables.scss 文件,其中包含颜色变量。功能库中的组件样式表会导入这些变量。到目前为止,一切都很好。app1 和 app2 都导入功能库(延迟加载)
问题:如何覆盖颜色变量以便为 app1 和 app2 渲染具有不同颜色的功能组件?
git - 如何确定使用 NX 运行增量构建所需的提交范围
在 CI/CD 服务器中,如何确定要包含在nx affected:build --base=master~1 --head=master
命令中的提交范围?
https://nx.dev/react/api/workspace/npmscripts/affected-build
例如,对于只有 1 次提交到 master 触发构建的用例来说,这将是微不足道的。但是,如果是 2 次或更多次提交触发了 CI/CD 上的构建,那么我如何确定构建运行的最后一次提交以确定--head
arg 使用的某些提交范围?
nrwl-nx - 如何使用angular和nest.js在nrwl nx monorepo中设置wallaby.js
我尝试在我的 nrwl/nx monorepo 中设置小袋鼠。我在这个 monorep 中有一个 angular 8 和一个 nest.js 应用程序。我使用 Jest 进行测试和最新的 Jetbrains Webstorm IDE。我找不到任何有关如何在此设置中启动和运行小袋鼠的说明。我能找到的唯一有用的资源是来自GitHub 上的TomWhiteOmni的示例存储库。但是,它们针对的是较旧的 Nx 版本。有没有人有这样的设置工作并愿意分享说明?
angular - Angular 不会摇动包含客户端(角度)和服务器代码的 nx lib
我正在使用 nrwl nx 工作区。我有一个工作区库 ( libs/jobs
),其中包含我的“工作”模块的所有逻辑。它包含服务器端代码以及角度模块。角度模块对服务器代码没有依赖关系,但是如果我通过它加载模块失败,因为它在编译时import('@reporting/jobs').then(m => m.JobsClientModule)
找不到节点 api 。fs
我认为摇树会消除未使用的服务器代码。为什么不呢?
我目前的解决方法是在tsconfig.json
--> path
:中添加一个新条目"@reporting/jobs-client": ["libs/jobs/src/client/index.ts"]
。仅从模块中导入客户端内容。但这感觉很hacky :(
有什么建议可以为一个功能创建一个包含所有代码(服务器和客户端)的库/模块吗?
angular - SyntaxError:无法在 Angular/Nx/jest 应用程序中使用 @ionic-native/health 的模块外部使用 import 语句
请帮忙,我明白了
在 Angular 应用程序中使用 @ionic-native/health。在这里回购,运行“npm i”,然后运行“ng test”:
angular - Monorepo 中 Angular 库与 Angular 模块的优势?NX 架构
我想知道在 Angular 中使用库而不是模块有什么好处,因为 nx.dev 建议使用 monorepo 架构。
我了解 npm 可发布功能(例如另一个 repo 将使用的接口)的好处,但是为什么我要使用与业务相关的功能(例如主页)创建一个库,例如:
而不是
tslint - 如何强制 nrwl nx 尊重标签更新?
当我更新 nx.json 中的项目标签时,TSLint 似乎没有意识到标签已更改,并且即使违反了依赖项,也会检查并构建项目。
例子
目前我的 nx.json 文件看起来像
我的根 tslint.json 包括:
当我运行时,这会按预期通过 linting ng lint hep
。
但是,如果我编辑 nx.json 中的标签,则 linter 不会显示任何错误。例如,如果我将 nx.json 修改为如下所示(从库中删除标签),它仍然会 lints 并构建而不会出现任何错误。
如果它有用,当我更新 tslint.json 中的规则时,linter 确实会抛出错误,但我希望它也能确认对 nx.json 的更改。
有没有办法让 linter 在更新 nx.json 中的标签时显示错误?
angular - 自 Jest 25 以来,覆盖率报告具有不同的源路径
我正在运行一个带有@nrwl/nx 设置和用于单元测试的 Jest 的 Angular 项目。我已将 Jest 配置为为每个应用程序和 lib 生成 lcov 文件,然后由 SonarQube Scanner 拾取以报告测试覆盖率。每个库都是它自己的声纳模块。
最近我将我的 Jest 版本从 24.1.0 更新到了 25.1.0。从那时起,我在 SonarQube 中的覆盖率始终为 0%,因为扫描仪无法找到文件:
我分析了两个版本的 lcov 文件,我注意到生成的路径发生了变化。
Jest 25.1(不起作用)
开玩笑 24.1(工作)
当我手动将其更改为以下内容时,这也有效:
但是现在我有点卡住了,因为我没有找到一种方法来告诉 Jest 以旧方式生成路径或告诉 Sonar 现在路径是不同的。
typescript - TypeORM OneToMany 导致“ReferenceError:无法访问”'在初始化之前"
我有两个实体:User和Habit。用户可以创建多个习惯,因此我在用户上使用OneToMany关系(分别在习惯上使用ManyToOne)。
用户实体
习惯实体
问题
设置上述关系时,我收到以下错误
笔记
我使用Nx并创建了一个NestJS应用程序。TypeOrm 版本是“^0.2.22”,@nestjs/typeorm 版本是“^6.2.0”
我的tsconfig如下:
我尝试使用ManyToMany关系并且它有效。此外,在单独的 NestJS 应用程序(没有 Nx)上,我无法重现此参考错误。在tsconfig.json中更改 ECMAScript目标版本也不起作用。
这两个实体仅在其服务中使用,并未在其他任何地方实例化。
我很感激任何帮助。先感谢您。