thegreenhouseio / polymer-webapp-seed

Polymer and webpack Seed for webapp projects in The Greenhouse
https://www.thegreenhouse.io/
MIT License
0 stars 0 forks source link

polymer-webapp-seed

Polymer and webpack Seed Project for The Greenhouse, as a template / starter project for frontend web applications. This is a simple starter project meant to get you up and running as fast as possible with a full local and production build with all the tools working together and as minimal friction and configuration as possible. Simply clone the repo and edit the files as needed to match your project.

Setup Steps

Tooling

The following tools are used in the application

Links

Project Setup

Note: It is recommended that a Javascript based IDE is used, like Webstorm, as they have a lot of the code quality and syntax tooling supported as plugins, often times right out of the box.

Recommended plugins to have are:

Steps

  1. If you don't already have it, download and install NodeJS 6.x (comes with NPM).

  2. This project favors Yarn, so make sure you have the latest by updating it after installing Node by running

$ npm install -g yarn@^1.0.0
  1. Now install the build and application dependencies by running
$ yarn install

Project Layout

An overview of important files and configurations for the applications

Root Files ('dot' files)

Also know as 'dot' files, these are the build and build configuration files for the application

Application Files

Application code, including unit tests. Directories are intended to be kept as flat as possible with a B.O.F. (birds of a feather) organization.

Tasks

This project uses Webpack as the build tool, executed via npm scripts. All available tasks are in the scripts section of package.json

Development

This will start up a webpack-dev-server, which watches for changes and 'redeploys' as needed.

$ yarn run develop

See it in a browser by opening up

http://localhost:4567/

Production

This is the production build task for the project. It is used prior to deploying to an environment and build a production version of the application.

Note: This task exports NODE_ENV=production by the use of using webpack's -p flag

$ yarn run build

Continuous Integration

Jenkins runs three scripts together (bin/build.sh) that lints non TS files, runs unit tests, and builds the application

$ yarn run clean
$ yarn run test
$ yarn run build

Demo

To serve a production build locally , like for a demo run:

$ npm run serve

Note: it is recommended you run this command from the master branch or a tag. By Default this proxies with the webpack-dev-server proxy.

Testing

To run Jest unit tests, run

$ yarn run test -- --watch

Dependency Management

All dependencies added or removed from the project must be done so through yarn

Add

# use --dev if it as devDependency
$ yarn add <package-name> [--dev]

Remove

$ yarn remove <package-name>

Upgrade

$ yarn upgrade <package-name>

Continuous Integration

TODO Document Your Continuous Integration Environment Here

Release Procedure

TODO Document Your Release Procedure Here

AWS Info

TODO Document Your AWS Info here (NO CREDENTIALS!!!!)