# npm installer

> Install npm packages with `elide install --ecosystems=npm`: Elide reads package.json and the npm block in elide.pkl, and links packages into node_modules.

Elide installs npm packages and links them into the project's `node_modules`.

```bash
elide install --ecosystems=npm
```

<img src="https://elide.help/assets/demos/npm-install.gif" alt="Installing an npm dependency and running a project with Elide" width="1591" height="764" loading="lazy" decoding="async" class="rounded-lg border border-border my-6 w-full" />

npm is opt-in; a bare `elide install` installs Maven only. Elide reads `package.json` and the `npm` block in
`elide.pkl`:

```pkl
amends "elide:project.pkl"

dependencies {
  npm {
    packages {
      "react@19.0.0"
    }
    devPackages {
      "typescript@5.6.2"
    }
  }
}
```

| Property | Meaning |
| --- | --- |
| `packages` | `name@version` or `@scope/name@version`. |
| `devPackages` | Development-time packages. |

Packages go to `.dev/dependencies/npm/node_modules`, linked from `node_modules` at the project root. Resolution is
recorded in `aube-lock.yaml`. Ecosystem selection and shared options: [Dependencies](https://elide.help/docs/toolchain/dependencies).
