|
|
@@ -7,18 +7,17 @@ An open-source headless commerce platform built on [Node.js](https://nodejs.org)
|
|
|
> Expected release of the alpha version is end of March. We're phasing out our Angular-based Admin UI with support until June 2026.
|
|
|
> [Read more >>](https://vendure.io/blog/2025/02/vendure-react-admin-ui)
|
|
|
|
|
|
-[](https://github.com/vendure-ecommerce/vendure/actions)
|
|
|
-[](https://github.com/vendure-ecommerce/vendure/actions/workflows/publish_and_install.yml)
|
|
|
+[](https://github.com/vendure-ecommerce/vendure/actions/workflows/build_and_test_master.yml)
|
|
|
+[](https://github.com/vendure-ecommerce/vendure/actions/workflows/publish_and_install_master.yml)
|
|
|
[](https://lerna.js.org/)
|
|
|
|
|
|

|
|
|
|
|
|
-
|
|
|
### [www.vendure.io](https://www.vendure.io/)
|
|
|
|
|
|
-* [Getting Started](https://docs.vendure.io/guides/getting-started/installation/): Get Vendure up and running locally in a matter of minutes with a single command
|
|
|
-* [Request Demo](https://vendure.io/demo)
|
|
|
-* [Vendure Discord](https://www.vendure.io/community): Join us on Discord for support and answers to your questions
|
|
|
+- [Getting Started](https://docs.vendure.io/guides/getting-started/installation/): Get Vendure up and running locally in a matter of minutes with a single command
|
|
|
+- [Request Demo](https://vendure.io/demo)
|
|
|
+- [Vendure Discord](https://www.vendure.io/community): Join us on Discord for support and answers to your questions
|
|
|
|
|
|
## Branches
|
|
|
|
|
|
@@ -46,8 +45,7 @@ vendure/
|
|
|
## Development
|
|
|
|
|
|
> [!IMPORTANT]
|
|
|
-> The following instructions are for those who want to develop the Vendure core framework or plugins (e.g. if you intend to make a pull request). For instructions on how to build a project *using* Vendure, please see the [Getting Started guide](https://docs.vendure.io/guides/getting-started/installation/).
|
|
|
-
|
|
|
+> The following instructions are for those who want to develop the Vendure core framework or plugins (e.g. if you intend to make a pull request). For instructions on how to build a project _using_ Vendure, please see the [Getting Started guide](https://docs.vendure.io/guides/getting-started/installation/).
|
|
|
|
|
|
### 1. Install top-level dependencies
|
|
|
|
|
|
@@ -55,9 +53,9 @@ vendure/
|
|
|
|
|
|
The root directory has a `package.json` which contains build-related dependencies for tasks including:
|
|
|
|
|
|
-* Building & deploying the docs
|
|
|
-* Generating TypeScript types from the GraphQL schema
|
|
|
-* Linting, formatting & testing tasks to run on git commit & push
|
|
|
+- Building & deploying the docs
|
|
|
+- Generating TypeScript types from the GraphQL schema
|
|
|
+- Linting, formatting & testing tasks to run on git commit & push
|
|
|
|
|
|
### 2. Build all packages
|
|
|
|
|
|
@@ -94,10 +92,10 @@ The first step is to populate the dev server with some test data:
|
|
|
cd packages/dev-server
|
|
|
|
|
|
[DB=mysql|postres|sqlite] npm run populate
|
|
|
- ```
|
|
|
+```
|
|
|
|
|
|
If you do not specify the `DB` variable, it will default to "mysql". If you specifically want to develop against Postgres,
|
|
|
-you need to run the `postgres_16` container and then run `DB=postgres npm run populate`.
|
|
|
+you need to run the `postgres_16` container and then run `DB=postgres npm run populate`.
|
|
|
|
|
|
### 5. Run the dev server
|
|
|
|
|
|
@@ -118,6 +116,7 @@ This will auto restart when you make changes to the admin ui. You don't need thi
|
|
|
to test backend changes.
|
|
|
|
|
|
### Testing your changes locally
|
|
|
+
|
|
|
This example shows how to test changes to the `payments-plugin` package locally, but it will also work for other packages.
|
|
|
|
|
|
1. Open 2 terminal windows:
|
|
|
@@ -130,7 +129,9 @@ This example shows how to test changes to the `payments-plugin` package locally,
|
|
|
cd packages/payments-plugin
|
|
|
npm run watch
|
|
|
```
|
|
|
+
|
|
|
:warning: If you are developing changes for the `core`package, you also need to watch the `common` package:
|
|
|
+
|
|
|
```shell
|
|
|
# Terminal 1
|
|
|
# Root of the project
|
|
|
@@ -157,11 +158,11 @@ To debug the dev server with VS Code use the include [launch.json](/.vscode/laun
|
|
|
|
|
|
Running `npm run codegen` will generate the following files:
|
|
|
|
|
|
-* [`packages/common/src/generated-types.ts`](./packages/common/src/generated-types.ts): Types, Inputs & resolver args relating to the Admin API
|
|
|
-* [`packages/common/src/generated-shop-types.ts`](./packages/common/src/generated-shop-types.ts): Types, Inputs & resolver args relating to the Shop API
|
|
|
-* [`packages/admin-ui/src/lib/core/src/common/generated-types.ts`](./packages/admin-ui/src/lib/core/src/common/generated-types.ts): Types & operations relating to the admin-ui queries & mutations.
|
|
|
-* [`packages/admin-ui/src/lib/core/src/common/introspection-result.ts`](./packages/admin-ui/src/lib/core/src/common/introspection-result.ts): Used by the Apollo Client [`IntrospectionFragmentMatcher`](https://www.apollographql.com/docs/react/data/fragments/#fragments-on-unions-and-interfaces) to correctly handle fragments in the Admin UI.
|
|
|
-* Also generates types used in e2e tests in those packages which feature e2e tests (core, elasticsearch-plugin, asset-server-plugin etc).
|
|
|
+- [`packages/common/src/generated-types.ts`](./packages/common/src/generated-types.ts): Types, Inputs & resolver args relating to the Admin API
|
|
|
+- [`packages/common/src/generated-shop-types.ts`](./packages/common/src/generated-shop-types.ts): Types, Inputs & resolver args relating to the Shop API
|
|
|
+- [`packages/admin-ui/src/lib/core/src/common/generated-types.ts`](./packages/admin-ui/src/lib/core/src/common/generated-types.ts): Types & operations relating to the admin-ui queries & mutations.
|
|
|
+- [`packages/admin-ui/src/lib/core/src/common/introspection-result.ts`](./packages/admin-ui/src/lib/core/src/common/introspection-result.ts): Used by the Apollo Client [`IntrospectionFragmentMatcher`](https://www.apollographql.com/docs/react/data/fragments/#fragments-on-unions-and-interfaces) to correctly handle fragments in the Admin UI.
|
|
|
+- Also generates types used in e2e tests in those packages which feature e2e tests (core, elasticsearch-plugin, asset-server-plugin etc).
|
|
|
|
|
|
### Testing
|
|
|
|
|
|
@@ -189,7 +190,7 @@ To make a release:
|
|
|
|
|
|
##### 1. `npm run publish-release`
|
|
|
|
|
|
-It will run `lerna publish` which will prompt for which version to update to. Although we are using [conventional commits](https://www.conventionalcommits.org), the version is not automatically being calculated from the commit messages. Therefore the next version should be manually selected.
|
|
|
+It will run `lerna publish` which will prompt for which version to update to. Although we are using [conventional commits](https://www.conventionalcommits.org), the version is not automatically being calculated from the commit messages. Therefore the next version should be manually selected.
|
|
|
|
|
|
Next it will build all packages to ensure the distributed files are up to date.
|
|
|
|