我正在一个项目中,我们将代码存储在由nrwl“管理”的monorepo中。该仓库包含几个角度应用程序和几个nestjs API。
现在,我们要对这些api进行泊坞处理,以便将它们部署到我们的kubernetes。
我可以通过调用ng serve api1
来启动一个api。我也可以通过运行ng build api1
来构建单个api。我遇到的问题是,每个api都需要与之一起部署的完整node_modules文件夹。据我所知,angular使用webpack打包了所有功能。
有没有一种方法来构建NestJs api并包含所有必需的node_modules?
答案 0 :(得分:1)
我们实际上刚刚发布了一种使用NestJS创建Monorepos的本地方法,您可以在Trilon博客上阅读有关full announcement here的更多信息
有了独立的NestJS应用程序,您现在可以简单地创建(另一个应用程序或库)并将其自动转换为monorepo工作区。
# make sure you have the latest @nestjs/cli
npm i --g @nestjs/cli
# if you want to create an app
nest g app my-other-app
# library
nest g lib my-library
现在,您将可以使用nest build NAME
来构建所需的任何应用程序,并且所有node_modules等都将被正确捆绑,等等!
此新的工作区设置将创建您习惯的命名约定:
# ** FROM
/src/ ... application code ...
# ** TO
/apps/
/nest-app/
/another-app/
/libs/
/some-shared-lib/
/ ... /
当前在Nest中设置monorepos的方式非常适合仅嵌套/节点代码库的monorepos。前端monorepos可以在其他地方分开保存,因为可以在FE <> BE之间共享有限的代码(只有一些没有装饰器的接口)。
希望有帮助:)
答案 1 :(得分:0)
尝试在包含项目的文件夹中进行npm i
,它应该在nodes_modules
文件夹中安装所有依赖项。
如果您使用docker,则可以在像这样在Dockerfile中构建应用程序之前运行此命令
RUN npm i <== Install dependencies
RUN ng build api1 <== Build the app
CMD ["ng", "serve", "api1"] <== Run the app