
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
generator-rush
Advanced tools
Light speed development of web applications with React, Typescript, Webpack, Server Side Rendering, Tree Shaking and a lot more
Scaffolding generator for the development of modern Web Applications with React, Typescript and Webpack. Rush creates the boilerplate code and allows you to concentrate on the business logic!
Scale your application by using the power of React and Redux, in combination with Typescript. Rush provides you with an extreme modular architecture, which allows you to add features without sacrificing control.
Combine the speed of Single Page Applications with the advantages of classic Websites. Rush renders everything on the server and after it reaches the client, it becomes a single page application. This allows you to do search engine optimization, while providing the best possible experience for the user!
Development speed is important! That's why we hot reload everything. With the help of webpack, we automatically update the server, client and the api server while you are writing code!
Webpack is amazing. But it can be pretty overwhelming, especially at the beginning. Rush already sets up everything for you so you can immediately start coding! But you also have all the freedom to customize everything later.
Generate new modules, components, containers and redux stores with your command line! Rush comes with a lot of subgenerators to make your life as easy as possible.
We already prepared the production builds for you! Just run the command and your application is ready to be deployed!
Define your styles with the full power SCSS. For every component, Rush automatically generates a scss for you. Because of auto prefixing, you can completely forget about '-webkit', '-moz' and co.
Install yeoman, generator-rush and yarn from npm:
$ npm install -g yo generator-rush yarn
To generate a new project run:
$ rh
Navigate into the project folder:
$ cd <project-folder>
Run yarn start and open http://localhost:3000/ in your favorite browser.
Everything is setup and you can start developing!
It is highly recommended to use Rush in combination with the following Chrome extensions:
Rush uses yeoman for the scaffolding. But to save you some typing it wraps the yeoman command
into it's own command. The Rush command is rh which is the equivalent of yo rush. To start a generator
with the rush command you run, for example, rh component new-component instead of yo rush:component new-component.
There is no disadvantage in using the original yo command. All the following examples use the rh command.
The following generators are available:
$ rh <arguments> <option>
or
$ rh app <arguments> <option>
Set up the app and generates all the boilerplate for you.
Options:
-h --help Print the generator's options and usage
--skip-install Do not automatically install dependencies
--upgrade If true, the generator tries to find an existing generator
configuration and just regenerates the project. Set this flag if you want to update an existing project.
You have to be in the project folder so yeoman can find the configuration. The default is false.
$ rh module <arguments> <option>
Generates a new module under ./src/app/modules. A module is a self contained unit which can contain several components
containers and a redux state. It is also a reference point for other generators.
Arguments:
<name> The name of the module
Options:
-h --help Print the generator's options and usage
$ rh component <arguments> <option>
Generates a new react component in the specific module or under a specific path. This command will also
generate the test and style files for the component.
The default path output is
./src/app/modules/<module-name>/components/<component-name>.
Arguments:
<name> The name of the component. It is also possible to prepend a path in front of the name.
This will create a folder relative to destination of the component.
For example yo trb:component my-folder/my-component will generate the component in the folder my-folder.
Options:
-h --help Print the generator's options and usage
-m --module The target module the component should generated in. If you are already in a module folder you don't
need to set this option. In this case, the generator can find the module name automatically.
-d --destination Set's the destination folder of the component relative to the current folder. You don't need
to set this if the module option is already defined. But sometimes you want to generate component outside of your
modules.
-f --flat Generates the component files directly into the destination folder, without generating a subfolder
with the component name. The default is false.
-s --stateless Generates a stateless component instead of a stateful one. This also means there will be no
styles generated for this component. The default is false.
$ rh container <arguments> <option>
Generates a new react-redux container for a specific component. For more information checkout their
documenation
Per default the container will be generated into
./src/app/modules/<module-name>/containers/<container-name>.
Arguments:
<name> The name of the container. Like in the component generator, it is also possible to prepend a path in
front of the name.
Options:
-h --help Print the generator's options and usage
--componentName Set the name of the component which the container should connect to the store. Per
default, the component has the same name as the container. The generator assumes that the component is saved
under ./src/app/modules/<module-name>/components/<component-name>. If this is not the case, the imports need
to be adjusted accordingly.
-m --module The target module the container should generated in. If you are already in a module folder you don't
need to set this option. In this case, the generator can find the module name automatically.
-d --destination Set's the destination folder of the container relative to the current folder. You don't need
to set this if the module option is already defined.
$ rh duck <arguments> <option>
Rush is intended to be used with the redux modular duck pattern. To reduce the boilerplate code the library https://github.com/mhoyer/redux-typed-ducks is used. The duck generator can automatically generate a basic duck file for you.
Arguments:
<name> The name of the duck. If you want to create the duck into a subfolder, it is possible to prepend a
path in front of the name.
<elements> What actions should the duck have (lowercase, separated by a space)?
For example "get get-all delete" will create the actions app/<duck-name>/GET, app/<duck-name>/GET_ALL and app/<duck-name>/DELETE
and the associated action creators and reducers.
Options:
-h --help Print the generator's options and usage
-m --module The target module the duck should generated in. If you are already in a module folder you don't
need to set this option. In this case, the generator can find the module name automatically.
-d --destination Set's the destination folder of the duck relative to the current folder. You don't need
to set this if the module option is already defined.
Per default, the generated project has a tslint rule which forbids the use console.log. This is to prevent that
verbose console logs are forgotten and included in the production build.
To have more control we included Typescript Logging. You can use it like the following:
import { loggerFactory } from '@src/logging';
const logger = loggerFactory.getLogger('logger-name');
logger.debug('This is a debug message');
logger.info('This is an info message');
logger.warn('This is an warning');
logger.fatal('This is a fatal message');
logger.error('This is an error');
Debug messages not be printed in the production build. You can control the logging levels in the ./src/logging.ts
file. For more information, please refer to the
official documentation.
The newly generated project comes with the following npm scripts:
| Script | Description |
|---|---|
| start | Shortcut for start:dev |
| start:dev | Build and start the ui server and the api server |
| start:prod | Build and start the ui server and the api server for production |
| start:server:dev | Build and start the ui server |
| start:api:dev | Build and start the api server |
| start:server:prod | Build and start the ui server for production |
| start:api:prod | Build and start the api server for production |
| run:server | Start the ui server. This commands assumes the server is already build. |
| run:api | Start the api server. This commands assumes the server is already build. |
| build:dev | Build the ui server, api server and client. |
| build:prod | Build the ui server, api server and client for production. |
build:<target>:<env> | Build for a specific target and environment (Replace <target> with client, server or api and <env> with dev or prod) |
| test | Shortcut for test:dev |
| test:dev | Run the unit tests with the development build |
| test:prod | Run the unit tests with the production build |
| test:e2e | Run the protractor e2e tests. Please make sure you run webdriver:update and webdriver:start before |
| webdriver:update | Update the selenium webdriver for protractor |
| webdriver:start | Start the selenium webdriver for protractor |
| lint | Run tslint to check the project files for errors |
| lint:fix | Run tslint and fix errors that can be fixed |
| check | Run tslint and the unit tests |
All the build processes are handled by an build script, which is located in the scripts folder. As an alternative
to the npm scripts, you can use the build script directly:
./scripts/build.js <enviroment> <options>
Run ./scripts/build.js without any arguments to see the available arguments and options.
Parameters:
enviroment The target environment for the build. Possible values are production and development.
Options:
--target The target of the build. Possible values are client, server or api. There are also multiple values
possible if there are separated by a comma. For example client,server will select client and server as a target.
--watch If this flag is enabled, the builder will watch the build and update the server on changes.
--callback Callback that will be executed after the builds are finished. If the callback process ends, the callback
will be restarted on the next build.
--force-restart This option can only be used in combination with the callback option. If set, this forces the
callback to restart on every new build, even if the process is still running.
FAQs
Light speed development of web applications with React, Typescript, Webpack, Server Side Rendering, Tree Shaking and a lot more
We found that generator-rush demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.