在 node.js 项目中构建文件的最佳实践

Best Practice for structuring files within a node.js project

我目前正在尝试更多地接触节点,并且想知道在处理 npm 特定文件和文件夹时的“最佳实践”。具体来说 node_modules.

心目中的项目有以下几个方面:

5 个组件中的 3 个最有可能在某个时候使用 node_modules。在单独的文件夹中单独设置所有 3 个是对磁盘的浪费-space 因为它们共享相当多的 npm 包。

这些组件应该如何设置?

我在想这样的文件夹结构:

project folder
|
├── README.md
├── node_modules
├── package.json
├── dot files (.gitignore, ...)
|
└── moduels
    ├── docs
    ├── api
    ├── app
    ├── robots
    └── web

假设我开始使用 express api。将 node_modules 文件夹重新定位到父文件结构是否有意义,这是否有效?

如果确实如此,我是否应该将应用程序和文档保留在结构中,即使它们没有使用任何 node_modules?

虽然这可能有效,但我反对在多个 modules 之间“重复使用”您的 node_modules。相反,您可能会考虑使用 pnpm 之类的东西来提高磁盘效率。

您建议的结构特别针对所有 api、前端和作业使用单个 package.json。因此,在稍后部署时,很难分离这三个组件之间的依赖关系。因此,当您想要单独部署它们时(例如,在 Docker 容器中),您需要在所有三个容器中使用所有依赖项,而不是仅使用需要的那些。

此外,您或多或少地设置了一个 package.json 依赖地狱。当你的一个模块需要另一个依赖版本(可能是直接的,可能是传递的)而不是另一个模块时,这会使事情变得更加复杂。