• This repository has been archived on 06/Jun/2023
  • Stars
    star
    110
  • Rank 316,770 (Top 7 %)
  • Language
    JavaScript
  • Created almost 10 years ago
  • Updated over 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

RF: a React/Flux generator with webpack, dialects and some good stuffs.

This repo is no longer maintained. Please use Facebook official generator: create-react-app instead.


generator-rf Build Status Gitter

RF: a React/Flux generator with webpack, dialects and some good stuffs.

What's inside

What 'RF' stands for

No, not the boring abbreviation of "React" and "Flux". It's actually the suffix of rm -rf. Now it sounds dangerous and cooler, doesn't it?

Installation

Prerequisites

Note: Jest doesn't work on io.js & node v0.11 ~ v0.12, if you like to have jest works, make sure you use node.js 4.0 above or v0.10

Install Yeoman

npm install -g yo

Install RF generator

npm install -g generator-rf

Getting Started

Intiate Project

For example, to create a project named "myapp", just type:

yo rf myapp

Run it up

cd myapp && npm run dev

Then Open http://localhost:8080 in the browser and have fun!

Run the test suit

Don't forget to test your project by:

npm test

Build for deploy

npm run build

What RF generates:

.
└── myapp *
    β”œβ”€β”€ build
    β”‚Β Β  └── index.html
    β”œβ”€β”€ package.json
    β”œβ”€β”€ preprocessor.js
    β”œβ”€β”€ node_modules
    β”œβ”€β”€ src
    β”‚Β Β  β”œβ”€β”€ assets
    β”‚Β Β  β”‚Β Β  β”œβ”€β”€ images
    β”‚Β Β  β”‚Β Β  └── stylesheets
    β”‚Β Β  β”‚Β Β      └── style.sass **
    β”‚Β Β  └── scripts
    β”‚Β Β   Β Β  β”œβ”€β”€ actions
    β”‚Β Β   Β Β  β”‚Β Β  └── __tests__
    β”‚Β Β   Β Β  β”œβ”€β”€ components
    β”‚Β Β   Β Β  β”‚Β Β  β”œβ”€β”€ App.js **
    β”‚Β Β   Β Β  β”‚Β Β  └── __tests__
    β”‚Β Β   Β Β  β”œβ”€β”€ constants
    β”‚Β Β   Β Β  β”‚Β Β  └── __tests__
    β”‚Β Β   Β Β  β”œβ”€β”€ dispatcher
    β”‚Β Β   Β Β  β”‚Β Β  β”œβ”€β”€ AppDispatcher.js **
    β”‚Β Β   Β Β  β”‚Β Β  └── __tests__
    β”‚Β Β   Β Β  β”œβ”€β”€ main.js **
    β”‚Β Β   Β Β  β”œβ”€β”€ mixins
    β”‚Β Β   Β Β  β”‚Β Β  └── __tests__
    β”‚Β Β   Β Β  └── stores
    β”‚Β Β   Β Β      └── __tests__
    β”œβ”€β”€ webpack.dev.config.js
    └── webpack.prod.config.js
  • * Won't create root directory if your current directory is identical with your project name. Check --skip-root section for detail.
  • ** Varied by your choices of the dialect and stylesheet syntax

What npm run build gives:

.
└── myapp
    β”œβ”€β”€ build
    β”‚Β Β  β”œβ”€β”€ bundle.js
    β”‚Β Β  β”œβ”€β”€ some bootstrap stuffs (if include)
    β”‚Β Β  └── ...
    └── ...

Options

--d: Dialect

By default, RF will generate codes in ES6, using Babel. If you don't like it, use --d flag to change the dialect to generate.

Example:

yo rf myapp --d=ls

--s: Stylesheet Syntax

RF generate SASS (indented syntax) by default. Use --s flag to change it.

  • scss for SCSS (Sassy CSS)
  • less for LESS
  • stylus for Stylus
  • or css for CSS.

Example:

yo rf myapp --s=scss

--skip-bootstrap: Don't include Bootstrap framework stuffs

RF includes Bootstrap settings in the real Webpack way. Turn them off by --skip-bootstrap flag.

Example:

yo rf myapp --skip-bootstrap

--skip-root: Don't create root directory

RF creates a root directory if current directory name is different from your appname, or generate files in current directory if they have same name. But if you're intentionally have them with different name, use --skip-root to generate files right in the current directory.

Example:

yo rf trueName --skip-root

--skip-test: Don't create __tests__ directories

For every sub-directories in src/scripts, RF will create a __tests__ directory within. Use skip-test to skip that.

Example:

yo rf myapp --skip-test

--skip-install: Skip automatic package installation

Example:

yo rf myapp --skip-install

Contribute

  • Fork this project
  • run npm install && npm test and make sure all test are pass
  • Make your changes with a bit of test
  • For commit message of pull request, please check these useful tips ahead.

TODO

  • PostCSS support
  • Actions w/Constants, Store
  • Custom template folder
  • Component and Mixin generate command
  • Isomorphic server script(?)

License

MIT