abpv new
abpv new Acme.BookStore
abpv new Acme.BookStore -d mongodb --separate-auth-server
abpv new Acme.BookStore --sample-crud
abpv new Acme.BookStore --no-backend --backend https://localhost:44305The backend is generated by the official abp CLI with -u no-ui -uost and -o Acme.BookStore/aspnet-core. The frontend is written to Acme.BookStore/vue, matching the standard backend/frontend directory layout.
-o / --output-folder selects the whole project directory; the backend goes into its aspnet-core/ subdirectory. Both separate values and --output-folder=<path> work. -csf / --create-solution-folder is consumed to avoid another nested solution folder. Other ABP options are passed through as typed.
Options of its own
--port <n> | The frontend's port; everything that has to agree with it is written |
--dir <path> | Frontend subdirectory relative to the project root; vue by default |
-o / --output-folder <path> | The whole project output directory; the solution name by default |
--modules <list> | Which module UIs to wire up; all of them by default |
--sample-crud | ABP's Books sample, backend and page |
--with-source-code <list> | Release those packages' source into the project from the start |
--no-backend | Only the frontend |
--backend <url> | The backend it should point at, with --no-backend |
--template <dir> | Render from this directory instead of the built-in template |
--dry-run | Say what it would write and write nothing |
The frontend directory must stay inside the project and separate from aspnet-core/. An existing backend or frontend is not overwritten. --no-backend writes the frontend directly into the project output directory.
What it writes on the backend
Three values, without which nothing can sign in:
The OpenIddict client's RootUrl | What the seeder builds the redirect URIs from |
CorsOrigins | On every host that answers the frontend |
RedirectAllowedUrls | Where the identity server may send the visitor back |
A solution generated with -u no-ui has none of them.
Backend generation
The command inspects the solution actually written to disk before adding the frontend. Follow Quick Start for backend library installation, database seeding and startup.
Additional generation options
--package-manager <pnpm|npm|yarn> selects the installer (default pnpm). --skip-install skips installation; --skip-proxy skips proxy generation. The default frontend port is 4200. --backend can override the detected backend address.
Choose the solution shape
| Goal | Command choice |
|---|---|
| New backend plus Vue app | new with the default backend generation |
| Optional Books teaching sample | Add --sample-crud |
| Vue-only application for a running backend | --no-backend --backend URL |
| Add Vue beside an existing backend/UI | switch-ui rather than a second new backend |
A standard new solution contains aspnet-core/ and vue/ side by side. The sample is optional; without sample-crud the template does not add a Books business page. Use --port when initially selecting a frontend address so seeded callbacks and generated configuration agree.
Before and after generation
Install the required .NET SDK, official ABP CLI and the frontend package manager before invoking backend generation. new delegates backend template options to the official CLI, so database/provider/template choices must be supported by that installed tool.
After generation, install backend web libraries, run DbMigrator from its project directory, start the host/auth server and start the frontend. Create a solution gives the exact project layout and commands. A generated frontend does not mean the database has been seeded.
If generation fails, read which phase failed before retrying: official backend creation, solution discovery/configuration, frontend rendering, dependency installation or proxy retrieval. Existing output is protected from overwrite; inspect it and intentionally choose a new destination or correct the failed phase rather than repeatedly writing into a partially created directory.