The PWA Studio project welcomes all codebase and documentation contributions. We would like to recognize the following community members for their efforts on improving the PWA Studio project:
For more information about contributing to this repository, see the Contribution guide.
About this repository
To facilitate local development, testing, and versioning, PWA Studio is structured as a monorepo using Yarn Workspaces. Packages in this repository are independently published to NPM; rather than installing
pwa-studio as a dependency of your project, you should install just the individual packages your project needs.
This repository includes the following packages as workspaces:
- venia-concept - Reference/Concept Storefront
- pwa-buildpack - Build tooling
- peregrine - eCommerce Component Library
- upward-js - Reference implementation of the UPWARD specification
- upward-spec - UPWARD specification and test suite
This repository also includes unpublished modules that are not managed by Yarn Workspaces. They are not configured as workspaces, so their dependencies are not hoisted and must be installed separately.
See the Venia storefront setup topic for instructions on installing this project's dependencies and running the Venia storefront on top of an existing Magento backend.
See our Troubleshooting guide if you run into any problems.
If you have an issue that cannot be resolved, please create an issue.
- Don't run
npm install! Since this project has been configured with Yarn Workspaces, run
yarn installto properly install, hoist, and cross-link dependencies.
- Don't check in
package-lock.json. There is only one lockfile,
yarn.lock, and it's in the root directory.
- To add a dependency, use workspace commands (e.g.,
yarn workspace @magento/venia-concept add my-module). This will associate the dependency with the right package.
- Before pushing a commit,
yarn run prettierand
yarn run lintto format and inspect the source code. (There is also a git hook that will do this automatically.)