一尘不染

Node.js项目的文件夹结构

node.js

我注意到Node.js项目通常包含以下文件夹:

/ libs,/ vendor,/ support,/ spec,/ tests

这些到底是什么意思?它们之间有什么区别,我应该在哪里包含引用的代码?


阅读 599

收藏
2020-07-07

共1个答案

一尘不染

关于您提到的文件夹:

  • /libs 通常用于自定义 classes/functions/modules
  • /vendor/support 包含第三方库(使用git作为源代码管理时添加为git子模块)
  • /spec 包含BDD测试规范。
  • /tests 包含应用程序的单元测试(使用测试框架,请参见 此处

注意:
自NPM引入了干净的程序包管理以来,/vendor/support都已弃用。建议使用NPM和package.json文件处理所有第三方依赖关系

当构建一个较大的应用程序时,我建议使用以下附加文件夹(尤其是在使用某种MVC- / ORM-
Framework(例如expressmongoose)时):

  • /models 包含您所有的ORM模型(Schemas以猫鼬称呼)
  • /views 包含您的视图模板(使用express中支持的任何模板语言)
  • /public 包含所有静态内容(图像,样式表,客户端JavaScript)
    • /assets/images 包含图像文件
    • /assets/pdf 包含静态pdf文件
    • /css 包含样式表(或CSS引擎编译的输出)
    • /js 包含客户端JavaScript
  • /controllers 包含所有快递路线,按应用程序的模块/区域分隔(注意:使用express的引导功能时,此文件夹称为 /routes

我习惯了以这种方式组织项目,我认为效果很好。

基于CoffeeScript的Express应用程序的更新(使用 connect-
assets
):

  • /app 包含您已编译的JavaScript
  • /assets/ 包含所有需要编译的客户端资产
    • /assets/js 包含您的客户端CoffeeScript文件
    • /assets/css 包含您所有的LESS / Stylus样式表
  • /public/(js|css|img) 包含没有任何编译器处理的静态文件
  • /src 包含所有服务器端特定的CoffeeScript文件
  • /test 包含所有单元测试脚本(使用您选择的测试框架来实现)
  • /views 包含您所有的表达意见(无论是jade,ejs还是任何其他模板引擎)
2020-07-07