Node.js多包项目?

Node.js多包项目?,node.js,npm,project-structure,Node.js,Npm,Project Structure,我是Node的新手,来自Java背景。这些天来,我正在试验完整应用程序的每个部分:数据库、RESTAPI、ui 到目前为止,我编写了数据库支持的逻辑,它独立运行,处理文本文件,在数据库中存储关于它们的数据,并公开一个RESTAPI来查询这些数据。我现在要创建一个ui来导航这些数据 这样的结构是否合理: - (a) main project folder - (b) backend application (a Restify server responds to REST calls q

我是Node的新手,来自Java背景。这些天来,我正在试验完整应用程序的每个部分:数据库、RESTAPI、ui

到目前为止,我编写了数据库支持的逻辑,它独立运行,处理文本文件,在数据库中存储关于它们的数据,并公开一个RESTAPI来查询这些数据。我现在要创建一个ui来导航这些数据

这样的结构是否合理:

- (a) main project folder
    - (b) backend application (a Restify server responds to REST calls querying the database)
    - (c) ui application (an http server serves React static files)
如果这有道理,我想:

  • (b) 有一个
    package.json
    与服务器和rest相关的依赖项(即Restify、MongoDB等)
  • (c) 有另一个
    package.json
    与ui相关(即React、Webpack等,但不包括Restify或MongoDB)
  • (a) 有第三个
    package.json
    ,它负责安装每个子项目(我想通过手工编写的npm脚本运行
    npm install
    )。 否则,您通常如何处理此类节点项目?您是否将每个应用程序与其他应用程序完全分开

对于那些知道该工具的人来说,它模仿了Maven多模块项目;尽管不需要这种自动化水平,但我只想提出一个自包含的包。

这些项目结构被称为monorepos——一个包含多个包的单节点项目存储库。有像这样的工具。如果您使用纱线作为包装管理器,它具有的实验功能。

谢谢。我目前正在使用webpack,但我会同时查看这两个网页。在经历了一些Lerna的体验后,我会回来。你可以在我对自己问题的评论中找到我的印象。Lerna似乎只满足了我一半的需求,没有提供打包/部署设施;但是,即使是像Gulp这样的工具(就我所看到的)也没有提供任何类型的项目结构/生命周期(可以说是la Maven),事实上,我最终编写了我自己的副本,上传了这些脚本。感谢@watery提出了这个极好的问题!你能分享一下你的最终结果吗?@barfuin和商业项目一样,我很快就开始另一个项目,所以我没有机会尝试任何东西:-)但我会在这里报告,只要我能找到什么。@barfuin我开始了一个新项目,我将现有的单片应用程序的一部分提取到单独的包中(ui组件、图标等),作为主应用程序文件夹旁边的子文件夹;Lerna帮助将它们用作本地依赖项(尽管有时可能会觉得有点奇怪,即一次只能添加一个依赖项,没有卸载命令,但npm卸载中断,因为本地依赖项声明为常规依赖项);虽然不支持应用程序打包/部署AFAICT,但有几期文章说Lerna不是一个部署工具。