PWA Studio
Magento PWA Studio is a collection of tools that enables developers to build complex Progressive Web Applications for Magento 2 stores.
Documentation for these tools exist in the PWA Studio documentation site.
This repository includes all Magento-authored tools necessary for PWA Studio, along with a reference/concept theme implementation.
Packages
- venia-concept - Reference/Concept Theme
- pwa-buildpack - Build tooling
- peregrine - eCommerce Component Library
- pwa-module
- pwa-devdocs - Project source for the documentation site
Getting Started
To ease local development, testing, and versioning, the PWA Studio project uses a monorepo, with package management orchestrated by lerna. All packages are versioned in a single repo, but released to npm
as independent packages.
One-time Setup
Note: You must have a version of node.js
>= 8.0.0
, and a version of npm
>= 5.0.0
. The latest LTS versions of both are recommended.
- Clone the repository
- Navigate to the root of the repository from the command line
- Run
npm install
Things not to do
When using a monorepo and lerna, it's important that you break some common habits that are common when developing front-end packages.
- Do not run
npm install
to getnode_modules
up to date within any folder underpackages/
. Instead, runnpm install
in the root of the repo, which will ensure all package's dependencies are up-to-date. - When adding a new entry to
devDependencies
in a package'spackage.json
, ask yourself whether that dependency will be used across multiple packages. If the answer is "yes," the dependency should instead be installed in the rootpackage.json
. This will speed up runs oflerna bootstrap
.