Ensono / stacks-webapp-template

Templating monorepo focusing on boilerplate web apps
https://amido.github.io/stacks/
MIT License
3 stars 9 forks source link
azure boilerplate front-end frontend monorepo nodejs reactjs ssr template webapp

Maintained by Amido Build Status NPM

stacks-webapp-template

Packages for templating SSR Node.js with React apps with little build configuration.

Documentation

For more information check out the documentation on Amido Stacks.

Why?

Every new project exists to solve a unique challenge but requires common building blocks to get up and running.

Traditional approaches require clients to use a single, specific templating model that is quick to set up but too rigid to allow development of the ideal solution.

Amido Stacks brings 10 years of client expertise to every project, providing fast, flexible, bespoke value in an accelerated environment.

Requirements

We are supporting and running node@12.

Please ensure that your local environment has the correct version installed.

We are leveraging npm for dependency management - follow the installation instructions for your OS here.

Contribution guidelines

Changes to this base repo flow through the Azure DevOps pipeline as defined in build/azDevOps/azure.

We enforce the use of Conventional Commits with CommitLint at commit time. We also lint and test all code before committing.

To link to an Azure Boards ticket, please include AB#{id} in your commit message. eg. AB#1230

Please see Stacks/CONTRIBUTING to find out more.

To start

npm install to install the dev dependencies from the root. This should invoke npm run postinstall automatically to bootstrap the packages in the current Lerna repo. Lerna installs all package dependencies and links any cross-dependencies.

Tests

Static

npm run lint: runs global linting from root level, ensuring all packages are following conventions specified in .eslintrc.

npm run prettier: runs formatting from root level, ensuring all packages are following conventions specified in .prettierrc.

npm run validate: ensures that the project adheres to Typescript checks, formatting and linting rules.

Unit

npm run test: runs the unit tests for all packages.

To create the sample app locally

For package management, we are using Lerna which can be installed using npm.

See scaffolding-cli for information.

Versioning and Publishing packages

We are also using Lerna to publish our packages, version control, and for changelogs. For more informatiion checkout the publishing docs on publishing.

Third-party dependencies

We are using a number of dependencies, not all of which we have developed ourselves. To ensure that we are able to grant the users of these packages the ability to use them for commerical purposes, we audit the dependencies and their license types. See the scripts license:check:allowed for the determined types.

In general, the following license types are OK: 'MIT;MIT*;ISC;BSD-3-Clause;BSD-2-Clause;Apache-2.0;Apache*;CC-BY-4.0;WTFPL'

Please note that the checks for the licenses are run on pre-commit, therefore, on your local machine. See Husky for more information, and refer to the configuration file at .huskyrc.