【问题标题】:Best Practice for structuring files within a node.js project [closed]在 node.js 项目中构建文件的最佳实践 [关闭]
【发布时间】:2022-01-07 03:33:29
【问题描述】:

我目前正在尝试更多地使用节点,并且在处理 npm 特定文件和文件夹时想知道“最佳实践”。特别是node_modules

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

  • REST API(节点/快递)
  • 前端(vue / Gatsby)
  • 机器人(自动化任务、js、cron 作业)
  • App (Flutter),未设置节点
  • 文档 (md),未使用节点设置

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

这些组件应该如何设置?

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

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

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

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

【问题讨论】:

    标签: node.js npm node-modules


    【解决方案1】:

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

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

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

    【讨论】:

    • 嗨@Jb31,感谢您的回复。我实际上并没有考虑过依赖问题的方面。确实有道理,而且肯定更烦人。我想我需要一个更好的系统来跟踪废弃的项目,以避免在我的开发设备上堆积:)
    猜你喜欢
    • 2023-02-05
    • 2015-03-25
    • 1970-01-01
    • 1970-01-01
    • 2014-05-15
    • 2016-05-22
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    相关资源
    最近更新 更多