Grails Webpack Profile

A profile for creating applications using Webpack

Table of Contents

1 Introduction

Grails Profiles encapsulate project commands, templates, and plugins.

Grails Webpack Profile is a profile for building Grails applications with node-based frontends via webpack.

To create an application using the webpack profile you can use the next command:

grails create-app myapp --profile=webpack

You can also choose this project when generating your project from the Grails Application Forge, either from the web app or via the API:

curl -O -d profile=webpack

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

This profile is fairly minimal and is intended as a base for other profiles, such as the react-webpack profile.

It configures webpack to bundle Javacsript source files from src/main/webapp and output them into the grails-app/assets directory. Custom tasks are added to build.gradle in order to streamline the bundling process when the Grails application is ran or assembled as a WAR/JAR file.

The profile provides one (optional) feature which installs the babel transpiler to bundle ES6 code. Use the --features=babel flag when generating your application to install the feature.

2 Upgrade

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

3 Profile Info

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

You will see an output similar to:

grails profile-info webpack
Profile: webpack
A profile for creating applications with node-based frontends using webpack

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:
* babel - Preconfigures webpack with babel-loader and ES6 transpilation
* 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

4 Support

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