首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NestJS + Angular项目抛出模块未找到:错误:无法解析'cache-manager‘

NestJS + Angular项目抛出模块未找到:错误:无法解析'cache-manager‘
EN

Stack Overflow用户
提问于 2019-11-09 21:23:49
回答 2查看 2.6K关注 0票数 6

我有一个NestJS后端(6.9.0)和Angular前端项目(8.2.11)。我使用并发在我的localhost中并行启动前端和后端。

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

你知道为什么吗?

这在以前运行得很好,不幸的是,我不能准确地指出是什么变化导致了这种行为。在NestJS中,我没有使用cli,我只是使用tsc构建它。

代码语言:javascript
复制
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'
EN

回答 2

Stack Overflow用户

发布于 2019-12-17 19:16:05

看起来你的一些nestjs包是在angular应用程序中导入的。

我也遇到过这个问题。在我的例子中,我使用来自@nestjs/swagger@ApiProperty注释为后端和前端应用程序共享了实体类。

票数 7
EN

Stack Overflow用户

发布于 2020-06-04 17:04:48

当试图导入包的某些部分时,如果这些部分不是为了合并到最终包中而设计的(比如@chshanovskiy和我的ApiProperty ),就会发生这种情况。

在尝试混合基于Nest.js和JS的前端部件(在我的例子中是: Nx工作区中的Angular )时,这是一个常见的问题,在Nest项目本身的here中有一个关于它的有趣讨论。

在仔细阅读并尝试了上一期中描述的策略后,我最终通过改变我架构依赖项的方式解决了这个问题,以下是关于我以此结束的工作文件系统的解释:

代码语言:javascript
复制
├── 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)

使用Swagger注解(特别是ApiProperty)的

  • back / service-1:Nest.js库。每个DTO类还实现了一个来自interfaces / service-1
  • front / service-1:Angular库的同源接口,调用front / service-1

API并使用来自interfaces / service-1

  • interfaces / service-1:独立Node.js库导出需要在back / service-1和Nest.js之间共享的接口/类型的类型来指定其接口契约

这样,后端和前端依赖都在相同的接口上,并且不需要在自己的位置以外的其他地方使用Nest.js部件:back/*库和应用程序。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58779725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档