React + Node.js 的项目结构应该是什么?

What should be a project structure for React + Node.js?

一个有点宽泛的问题,但是随着 JS 世界的所有这些趋势,有时很难找到关于如此简单的事情的信息。 在此类项目中组织文件和文件夹的更好方法是什么? Facebook 有几个语言的服务器 examples,但它用于非常基本的项目。

还可以在 git

上找到 React 示例

但是这些例子只是用来玩玩的。

目标是 - 明确区分客户端和服务器组件。将它们移动到单独的文件夹树中。 也有类似应用程序的结构(例如 Django 做的)

所以主要问题是:

将 nodejs/iojs 服务器端与 React 客户端组件分开并将它们放在一个项目中的正确方法是什么?

项目:

这样的怎么样,我在 GitHub 上看到很多项目都遵循类似的结构,这就是我使用的。

components/   // React Components Directory
models/       // Mongoose Models (if your using a database too)
public/       // Static Files Directory
---- css
---- js
---- svg
...
utils/        //Files containing utility methods
views/        // Server Side Views (jade, or handlebars, ..)
app.js        // Client side main
config.js     // App configuration
package.json 
routes.js     // Route definitions
server.js     // Server side main

React-starter-kit 是一个非常好的同构项目模板,还包括所有必要的工具,如 eslint、babel 等。它有详细的文档记录,因此您可以轻松了解每个文件夹的用途。

在构建项目结构之前,您必须考虑是否有必要应用 flux,不同的 flux 或 flux-inspired 框架可能会使您的结构不同。 React-starter-kit 是开始尝试不同实现的好地方。

基本上您可以从任何 React.js 样板开始;看一遍,从几个方面评价问题

  • 人群之间的作品容易分开吗
  • 应用结构有意义吗?稍后当您返工同一件事时,您是否会难以理解应用程序的结构?
  • 以后如果要加functionalists会不会很难? (假设你想要 csrf 支持)

我比较了一些 React 样板,最终选择了 isomorphic500。我修改了我的代码以达到这样的目的:

我的 src 文件夹中是您将要开发的模块。对我来说,如果所有模块都解耦,那么开发东西会更容易,通过这样做,你可以将你的工作与你的队友分开,如果有的话。