viv new

Use this to start a project in a directory that doesn't exist yet. A bare directory name runs init's own defaults inside it; a vendor/package[:constraint] spec downloads that package's dist as a skeleton and installs it there, npx create-/Laravel's new style. create-project is Composer's own name for this and is kept as an alias, along with its three-positional vendor/package dir constraint shape (prefer vendor/package:constraint instead).

Usage

Start a project in a directory that doesn't exist yet (#139): a bare directory name runs `init`'s own defaults inside it; a `vendor/package[:constraint]` spec downloads that package's dist as a skeleton and installs it there. `create-project` is Composer's own name, kept as an alias along with its `vendor/package dir constraint` three-positional shape (prefer `vendor/package:constraint` instead)

Usage: viv new [OPTIONS] <TARGET> [DIR] [CONSTRAINT]

Arguments:
  <TARGET>      A bare directory name for an empty project, or `vendor/package[:constraint]` for a skeleton (constraint defaults to the newest stable version)
  [DIR]         Directory to create the skeleton in (default: the package's short name); rejected alongside a bare directory `target`
  [CONSTRAINT]  `composer create-project vendor/package dir constraint`'s own third positional, accepted only for that compatibility: prefer `vendor/package:constraint`. An error alongside a colon constraint

Options:
      --no-dev                   Resolve without `require-dev`; `install` (unless `--no-install`) skips dev packages too, matching `viv update`/`viv install`'s own `--no-dev`
  -v, --verbose                  Raise logging to debug
      --cache-dir <CACHE_DIR>    Store location (default `$XDG_CACHE_HOME/vivace`, or `~/.cache/vivace`)
      --no-install               Unpack the skeleton and write composer.lock, but don't install
      --no-scripts               Skip `post-root-package-install`/`post-create-project-cmd` and every other root `scripts` listener the install half would run
      --offline                  Fail fast on any request instead of connecting: install errors, naming every package not already in the store; update solves from cached repository metadata only, erroring on an uncached package. Also set by `COMPOSER_DISABLE_NETWORK` (any value but unset, empty or `0`; Composer's own git-priming `prime` value is not special-cased here, since neither `install` nor `update` touch a git source)
      --repository <REPOSITORY>  Extra `composer`-type repository to resolve the skeleton from (Private Packagist, Satis), same priority as `composer.json`'s own `repositories`
  -h, --help                     Print help

Reads and writes

  • Reads: the store under $XDG_CACHE_HOME/vivace, git config.
  • Writes: the new project directory, composer.json, composer.lock, vendor/, and the store.

Exit codes

  • 0 — the project was written and installed.
  • 1 — a filesystem error, an existing non-empty directory, or a bad flag.
  • 2 — the package's dependencies failed to resolve.

See also

viv init, viv install