scala-play-angular-seed project illustrates how Play Framework can be used to develop backend/services along with Angular to develop the front-end/ui.
Read more @ http://bit.ly/2AStvhK
-
Clone the application and open application as a sbt project.
-
This application is not using any of the scala play views and all the views are served by the Angular code base which is inside the
ui
folder. -
Used any of the sbt commands listed in the below according to the requirement which are working fine with this application.(To see more details of sbt)
sbt clean # Clear existing build files
sbt stage # Build your application from your project’s source directory
sbt run # Run both backend and frontend builds in watch mode
sbt dist # Build both backend and frontend sources into a single distribution
sbt test # Run both backend and frontend unit tests
├── /app/ # The backend (scala) application sources (controllers, models, views, assets)
├── /conf/ # Configurations files and other non-compiled resources (on classpath)
│ ├── application.conf # Builds the project from source to output(lib and bower) folder
│ ├── logback.xml # Logging configuration
│ └── routes # Routes definition
├── /logs/ # Logs folder
│ └── application.log # Default log file
├── /project/ # Sbt configuration files
│ ├── FrontendCommands.scala # Frontend build commands
│ ├── FrontendRunHook.scala # Forntend build PlayRunHook (trigger frontend serve on sbt run)
│ ├── build.properties # Marker for sbt project
│ └── plugins.sbt # Sbt plugins declaration
├── /public/ # Frontend build artifacts will be copied to this directory
├── /target/ # Generated stuff
│ ├── /universal/ # Application packaging
│ └── /web/ # Compiled web assets
├── /test/ # Contains unit tests for java play sources
├── /ui/ # Angular front end sources
│ ├── /e2e/ # End to end tests folder
│ ├── /node_modules/ # 3rd-party frontend libraries and utilities
│ ├── /src/ # The frontend source code (modules, componensts, models, directives, services etc.) of the application
│ ├── .angular-cli.json # Builds the project from source to output(lib and bower) folder
│ ├── .editorconfig # Define and maintain consistent coding styles between different editors and IDEs
│ ├── .gitignore # Contains ui files to be ignored when pushing to git
│ ├── karma.conf.js # Karma configuration file
│ ├── package.json # Holds various metadata configuration relevant to the ui
│ ├── protractor.conf.js # Protractor configuration file
│ ├── proxy.conf.json # UI proxy configuration
│ ├── README.md # Contains all user guide details for the ui
│ ├── tsconfig.json # Contains typescript compiler options
│ └── tslint.json # Lint rules for the ui
├── .gitignore # Contains files to be ignored when pushing to git
├── build.sbt # Play application build script
├── LICENSE # Contains License Agreement file
├── README.md # Contains all user guide details for the application
└── ui-build.sbt # Associated frontend build scripts with sbt
- Represents available frontend build commands.
├── /project/
│ ├── FrontendCommands.scala
- Represents PlayRunHook scala implementation to trigger angular serve with sbt run command.
├── /project/
│ ├── FrontendRunHook.scala
ui-build.sbt
file to represent UI builds scrips implementations to run along with the available sbt commands.- This file is located in the root level of the project to work smoothly with the
build.sbt
file.
- Added several new npm run commands in the
scripts
section of the package.json file in order to work smoothly with the sbt commands. - Check UI README.md to see the available front end build tasks.
├── /ui/
│ ├── package.json
- Contains proxy configurations required to run application in watch mode along with both
Scala
andAngular
builds.
├── /ui/
│ ├── proxy.conf.json
├── /conf/
│ ├── routes
- The following route configuration allows to map front end index.html to index route. This should be placed as the first route in this file.
GET / controllers.Assets.at(path="/public/ui", file="index.html")
Note: On production build all the front end Angular build artifacts will be copied to the public/ui
folder.
Yohan Gomez |
Lahiru Jayamanna |
Gayan Attygalla |
Anuradha Gunasekara |
---|
This software is licensed under the MIT license