Grails React Profile

A profile for creating applications using React

Version: 1.1.1.BUILD-SNAPSHOT

Table of Contents

1 Introduction

Grails Profiles encapsulate project commands, templates, and plugins. To create an application using the react profile you can use the next command:

grails create-app myapp --profile=react

If you are looking for the webpack/monolithic version of this profile, please see the [1.x branch](https://github.com/grails-profiles/react/tree/1.x). You can install it with the command below:

grails create-app myApp --profile=org.grails.profiles:react:1.0.2

Also, you could create a Grails application using the react profile with the Grails Application Forge

start

Grails Application Forge is a great way to discover the different provided features in the profile.

2 Usage

This profile provides a client/server multi-project build structure. The server Grails app is using the rest-api profile with CORS enabled. It can be started using grails run-app or using the Gradle wrapper:

./gradlew server:bootRun

The React client app has been built using the create-react-app CLI. It can be started via npm start (in which case you will need to run npm install to install npm dependencies) or using the Gradle wrapper (which will install npm dependencies automatically if needed):

./gradlew client:bootRun

The client app’s build.gradle defines other tasks to test and build the app using react-scripts. Please see create-react-app’s documentation for more information.

To run both client & server projects in parallel, use the Gradle wrapper:

./gradlew bootRun -parallel

Although the profile creates a multi-project build, it is possible to combine both client and server projects into a single build. Read the Guide Combining the React profile projects to learn how.

3 Upgrade

You can explore the differences between Grails versions, to ease the upgrade of your Grails application created with the react profile.

4 Guides, Quickcast and Blog Posts

To learn more about the Angular profiles, check the following Grails Guides & Quickcasts:

The following blog posts would be useful too:

5 Profile Info

You can always get information about the provided command and available features executing grails profile-info react

You will see an output similar to:

Profile: react
--------------------
A profile for creating Grails applications with a React frontend

Provided Commands:
--------------------
* help - Prints help information for a specific command
* open - Opens a file in the project
* gradle - Allows running of Gradle tasks
* create-controller - Creates a controller
* create-domain-resource - Creates a domain class that represents a resource
* create-functional-test - Creates an functional test
* create-integration-test - Creates an integration test
* create-interceptor - Creates an interceptor
* create-restful-controller - Creates a REST controller
* clean - Cleans a Grails application's compiled sources
* compile - Compiles a Grails application
* create-command - Creates an Application Command
* create-domain-class - Creates a Domain Class
* create-service - Creates a Service
* create-unit-test - Creates a unit test
* install - Installs a Grails application or plugin into the local Maven cache
* assemble - Creates a JAR or WAR archive for production deployment
* bug-report - Creates a zip file that can be attached to issue reports for the current project
* console - Runs the Grails interactive console
* create-script - Creates a Grails script
* dependency-report - Prints out the Grails application's dependencies
* list-plugins - Lists available plugins from the Plugin Repository
* plugin-info - Prints information about the given plugin
* run-app - Runs a Grails application
* run-command - Executes Grails commands
* run-script - Executes Groovy scripts in a Grails context
* shell - Runs the Grails interactive shell
* stats - Prints statistics about the project
* stop-app - Stops the running Grails application
* test-app - Runs the applications tests
* generate-all - Generates a controller that performs REST operations
* generate-controller - Generates a controller that performs REST operations
* generate-functional-test - Generates a functional test for a controller that performs REST operations
* generate-unit-test - Generates a unit test for a controller that performs REST operations
* generate-views - Generates a controller that performs REST operations

Provided Features:
--------------------
* security - Adds Spring Security REST to the project
* asset-pipeline - Adds Asset Pipeline to a Grails project
* events - Adds support for the Grails EventBus abstraction
* gsp - Adds support for GSP to the project
* hibernate4 - Adds GORM for Hibernate 4 to the project
* hibernate5 - Adds GORM for Hibernate 5 to the project
* json-views - Adds support for JSON Views to the project
* less-asset-pipeline - Adds LESS Transpiler Asset Pipeline to a Grails project
* markup-views - Adds support for Markup Views to the project
* mongodb - Adds GORM for MongoDB to the project
* neo4j - Adds GORM for Neo4j to the project
* rx-mongodb - Adds RxGORM for MongoDB to the project

6 Support

For support, please use the Groovy Community Slack or open an issue on Github