NestJS + Angular项目抛出模块未找到:错误:无法解析“缓存管理器”

我有一个nestJS后端(6.9.0)和Angular前端项目(8.2.11)。 我同时使用本地主机并行启动前端和后端。

后端启动正常(启动速度更快),但是当Angular项目开始编译时,当编译准备就绪时,它将引发以下错误:

任何想法为何?

此操作之前效果很好,很遗憾,我无法确切查明是什么更改导致了此行为。在nestJS中,我不使用cli,而只是使用tsc构建它。

WARNING in ../server/node_modules/@nestjs/common/utils/load-package.util.js 8:39-59
Critical dependency: the request of a dependency is an expression

ERROR in ../server/node_modules/@nestjs/common/cache/cache.providers.js
Module not found: Error: Can't resolve 'cache-manager' in '/mnt/c/codes/salesforce-compare/server/node_modules/@nestjs/common/cache'
ERROR in ../server/node_modules/@nestjs/common/pipes/validation.pipe.js
Module not found: Error: Can't resolve 'class-transformer' in '/mnt/c/codes/salesforce-compare/server/node_modules/@nestjs/common/pipes'
ERROR in ../server/node_modules/@nestjs/common/serializer/class-serializer.interceptor.js
Module not found: Error: Can't resolve 'class-transformer' in '/mnt/c/codes/salesforce-compare/server/node_modules/@nestjs/common/serializer'
ERROR in ../server/node_modules/@nestjs/common/pipes/validation.pipe.js
Module not found: Error: Can't resolve 'class-validator' in '/mnt/c/codes/salesforce-compare/server/node_modules/@nestjs/common/pipes'
qipaoshaonian 回答:NestJS + Angular项目抛出模块未找到:错误:无法解析“缓存管理器”

当尝试导入包装中未设计为要包含在最终捆绑包中的零件时会发生这种情况(例如,对于{ch1ovskiy和我来说,是ApiProperty)。

当尝试混合使用Nest.js和基于JS的前端部分(在我的情况下:Nx工作空间中的Angular)时,这是一个常见问题,Nest项目本身{{3} }。

仔细阅读并尝试上一期中介绍的策略后,我终于通过更改构建依赖关系的方式解决了该问题,这是对我最后使用的工作文件系统的说明:

├── apps
│ ├── back // <- Nest.js app
│ ├── front // <- Angular app
├── libs
│ ├── back
│ │ ├── service-1 // <- Nest.js library (publishable)
│ ├── front
│ │ ├── service-1 // <- Angular library (NgRx feature,publishable)
│ ├── interfaces
│ │ ├── service-1 // <- Node.js library (publishable)
  • back / service-1:Nest.js库,使用Swagger注释(尤其是 ApiProperty)。每个DTO类还实现了来自interfaces / service-1
  • 的同源接口
  • front / service-1:Angular库调用Nest.js API,并使用来自 interfaces / service-1
  • 的类型指定其接口协定
  • interfaces / service-1:独立的Node.js库导出需要在 back / service-1front / service-1之间共享的接口/类型

这样,前后都依赖于相同的接口,除了在自己的地方(back/*库和应用程序)之外,无需在其他地方使用Nest.js部分。

,

好像您的一些nestjs软件包是在angular应用程序中导入的。

我也遇到了这个问题。就我而言,我为后端和前端应用共享了带有@ApiProperty的{​​{1}}注解的实体类。

本文链接:https://www.f2er.com/3132752.html

大家都在问