GithubHelp home page GithubHelp logo

hhy5277 / generator-react-webpack Goto Github PK

View Code? Open in Web Editor NEW

This project forked from react-webpack-generators/generator-react-webpack

0.0 2.0 0.0 468 KB

Yeoman generator for ReactJS and Webpack

Home Page: http://newtriks.com/2013/12/31/automating-react-with-yeoman-and-grunt/

License: MIT License

JavaScript 99.27% CSS 0.73%

generator-react-webpack's Introduction

generator-react-webpack

Coverage Status Join the chat at https://gitter.im/newtriks/generator-react-webpack Build Status Amount of Downloads per month Dependency Tracker Dependency Tracker Node Version

Yeoman generator for ReactJS - lets you quickly set up a project including karma test runner and Webpack module system.

About

Generator-React-Webpack will help you build new React projects using modern technologies.

Out of the box it comes with support for:

  • Webpack
  • ES2015 via Babel-Loader
  • Different supported style languages (sass, scss, less, stylus)
  • Style transformations via PostCSS
  • Automatic code linting via esLint
  • Ability to unit test components via Karma and Mocha/Chai

Changes since version 2.0

This generator is written in ES2015. This means it is not compatible with node.js versions before 4.0.

It also does NOT include support for Flux-Frameworks anymore. Instead, we will use it as a base for other generators to build upon. This will make the base generator easier to use and update.

If you are interested, feel free to write your own generator and use generator-react-webpack as a base (via composition).

If you have built a generator using generator-react-webpack, tell us and we will add a link to our README.

Generators that extend generator-react-webpack


Installation

# Make sure both is installed globally
npm install -g yo
npm install -g generator-react-webpack

Setting up projects

# Create a new directory, and `cd` into it:
mkdir my-new-project && cd my-new-project

# Run the generator
yo react-webpack

Please make sure to edit your newly generated package.json file to set description, author information and the like.

Generating new components

# After setup of course :)
# cd my-new-project
yo react-webpack:component my/namespaced/components/name

The above command will create a new component, as well as its stylesheet and a basic testcase.

Generating new stateless functional components

yo react-webpack:component my/namespaced/components/name --stateless

Stateless functional components where introduced in React v0.14. They have a much shorter syntax than regular ones and no state or lifecycle methods at all. Please read the React 0.14 release notes to get more information about those components.

Note: You will still be able to set properties for stateless components!

Adding PostCSS plugins

If you have enabled PostCSS at generation time, install your PostCSS plugins via npm and require it in postcss function in cfg/base.js.

Example for autoprefixer:

cd my-new-project
npm install autoprefixer

Require in cfg/base.js

...
postcss: function () {
  return [
    require('autoprefixer')({
      browsers: ['last 2 versions', 'ie >= 8']
    })
  ];
}
...

Usage

The following commands are available in your project:

# Start for development
npm start # or
npm run serve

# Start the dev-server with the dist version
npm run serve:dist

# Just build the dist version and copy static files
npm run dist

# Run unit tests
npm test

# Auto-run unit tests on file changes
npm run test:watch

# Lint all files in src (also automatically done AFTER tests are run)
npm run lint

# Clean up the dist directory
npm run clean

# Just copy the static assets
npm run copy

Naming Components

We have opted to follow @floydophone convention of uppercase for component file naming e.g. Component.js. I am open to suggestions if there is a general objection to this decision.

Modules

Each component is a module and can be required using the Webpack module system. Webpack uses Loaders which means you can also require CSS and a host of other file types. Read the Webpack documentation to find out more.

Props

Thanks to Edd Hannay for his Webpack optimisations, my local merge and testing meant his additions lost his signature (my fault, sorry). So, big thanks Edd.

Contribute

Contributions are welcomed. When submitting a bugfix, write a test that exposes the bug and fails before applying your fix. Submit the test alongside the fix.

Running Tests

npm test or node node_modules/.bin/mocha

License

MIT license

generator-react-webpack's People

Contributors

andrewliebchen avatar chrisolsen avatar cmil avatar colch avatar crshoverride avatar d-i-b avatar framp avatar gios avatar gitter-badger avatar guifromrio avatar maksimr avatar manuphatak avatar marcin-wosinek avatar materliu avatar me97esn avatar mjul avatar newtriks avatar oliveiraethales avatar ryan953 avatar shraymonks avatar spencerhandley avatar sthzg avatar stylesuxx avatar teawaterwire avatar thewtex avatar victor-homyakov avatar vovanr avatar weblogixx avatar yonatanmn avatar zerbitx avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.