我注意到了那个 node .js项目通常包括以下文件夹:

/libs、/vendor、/support、/spec、/tests

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

推荐答案

关于你提到的文件夹:

  • 100通常用于定制classes/functions/modules
  • 100101包含第三方库(添加为git
  • 100包含BDD测试的规范.
  • 101包含应用程序的单元测试(使用测试

NOTE: both 100 and 101 are deprecated since NPM introduced a clean package management. It's recommended to handle all 3rd-party dependencies using NPM and a package.json file

在构建一个相当大的应用程序时,我推荐以下额外的文件夹(尤其是如果您使用某种MVC-/ORM框架,比如expressmongoose):

  • (你的100型mongoose 包含所有mongoose )
  • 100包含视图模板(使用express支持的任何模板语言)
  • /public contains all static content (images, style-sheets, client-side JavaScript)
    • 100包含图像文件
    • 100包含静态pdf文件
    • 100包含样式表(或css引擎编译的输出)
    • 100包含客户端JavaScript
  • 100包含所有的express routes,由应用程序的模块/区域分隔(注意:使用express的 bootstrap 功能时,此文件夹称为101)

我习惯了用这种方式组织我的项目,我觉得效果很好.

Update for CoffeeScript-based Express applications (using 100):

  • 100包含编译后的JavaScript
  • /assets/ contains all client-side assets that require compilation
    • 100包含客户端咖啡脚本文件
    • 100包含所有LESS/Stylus样式表
  • 100包含任何编译器都无法处理的静态文件
  • 100包含所有服务器端特定的CoffeeScript文件
  • 100包含所有单元测试脚本(使用您 Select 的测试框架实现)
  • 100包含所有express视图(无论是jade、ejs还是任何其他模板引擎)

Node.js相关问答推荐

在内存中加载安全密钥安全吗?还是每次都从文件中读取?

如何在Mongoose for MongoDB中编写此查询

try 插入重复的邮箱时,mongoDB DuplicateKey 错误未定义

如何在docker容器上正确安装nodejs?

Next.js 路由不起作用 - 页面未正确加载

NPM如何管理node_modules传递依赖?

如何设置 Puppeteer Select 器的唯一性?

在父模式中设置默认值.

为什么这个 module.export 函数如果我直接传递它就不起作用,但如果我将它包装在一个匿名函数中就可以工作

Typescript 正则表达式:过滤器返回空

express 和 mongoose 的新密码不正确

将文件传递到 AWS lambdas(nodejs) + API 网关后重新上传文件

module.exports=require('other') 和临时变量有什么区别?

更新文档数组中的文档 Mongoose

表达限制资源属于特定用户的优雅方式

如何防止 node.js 中的内存泄漏?

提供静态文件到底是什么意思?

在 express 中添加故意延迟

如何在 Node.js 中使用 chmod

未在 Windows 8.1 上构建的 node 包 - 缺少 Microsoft.Cpp.Default.props