我有一个NestJS后端(6.9.0)和Angular前端项目(8.2.11)。我使用并发在我的localhost中并行启动前端和后端。
后端启动正常(启动速度更快),但当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'发布于 2019-12-17 19:16:05
看起来你的一些nestjs包是在angular应用程序中导入的。
我也遇到过这个问题。在我的例子中,我使用来自@nestjs/swagger的@ApiProperty注释为后端和前端应用程序共享了实体类。
发布于 2020-06-04 17:04:48
当试图导入包的某些部分时,如果这些部分不是为了合并到最终包中而设计的(比如@chshanovskiy和我的ApiProperty ),就会发生这种情况。
在尝试混合基于Nest.js和JS的前端部件(在我的例子中是: Nx工作区中的Angular )时,这是一个常见的问题,在Nest项目本身的here中有一个关于它的有趣讨论。
在仔细阅读并尝试了上一期中描述的策略后,我最终通过改变我架构依赖项的方式解决了这个问题,以下是关于我以此结束的工作文件系统的解释:
├── 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-1front / service-1:Angular库的同源接口,调用front / service-1 API并使用来自interfaces / service-1
interfaces / service-1:独立Node.js库导出需要在back / service-1和Nest.js之间共享的接口/类型的类型来指定其接口契约这样,后端和前端依赖都在相同的接口上,并且不需要在自己的位置以外的其他地方使用Nest.js部件:back/*库和应用程序。
https://stackoverflow.com/questions/58779725
复制相似问题