# Rollup failed to resolve import

> Getting the error “Rollup failed to resolve import”? Here is how to fix it. The code imports a package that is not in package.json.

**Rollup failed to resolve import.** The code imports a package that isn’t in package.json — common when an AI builder adds a plugin import without the dependency.

- Web build. A package is imported but not installed.
- Interactive page: https://capwr.app/free-tools/build-error-explainer/rollup-failed-to-resolve-import
- Build error explainer: https://capwr.app/free-tools/build-error-explainer
- Last updated: 2026-10-03

## What this error means

The code imports a package that isn’t in package.json — common when an AI builder adds a plugin import without the dependency.

## Why it happens

A source file imports a package that is not listed in package.json, so the bundler cannot resolve it. Builders often add the import and skip the dependency.

## The message tools print

```
[vite]: Rollup failed to resolve import "@capacitor/haptics" from "/home/runner/work/harbor/harbor/src/lib/native.ts".
```

## How to fix it

1. Install the package named in the error (npm install, then the name) and commit the lockfile.
2. For Capacitor plugins, run npx cap sync afterwards.

## Check a log that shows this

Paste the failing step into the [build error explainer](https://capwr.app/free-tools/build-error-explainer). It matches this message, and any others in the same log, in your browser. Nothing is uploaded.

## Other Web build errors

- [npm ci needs an existing package-lock.json](https://capwr.app/free-tools/build-error-explainer/npm-ci-package-lock-json)
- [npm ci: lockfile is out of sync with package.json](https://capwr.app/free-tools/build-error-explainer/npm-ci-lockfile-out-of-sync)
- [npm ERESOLVE unable to resolve dependency tree](https://capwr.app/free-tools/build-error-explainer/npm-eresolve)
- [JavaScript heap out of memory](https://capwr.app/free-tools/build-error-explainer/javascript-heap-out-of-memory)
- [error TS: TypeScript errors stop the build](https://capwr.app/free-tools/build-error-explainer/typescript-error-ts)
- [Could not find the web assets directory](https://capwr.app/free-tools/build-error-explainer/could-not-find-the-web-assets-directory)
- [Capacitor: Invalid App ID](https://capwr.app/free-tools/build-error-explainer/invalid-app-id)

## Build the web app before the native one

CapWrapp installs dependencies from the lockfile, builds the site, and runs Capacitor sync before the native build, from the GitHub repo you connect.

[Get started free](https://capwr.app/login).

## About CapWrapp

CapWrapp turns a web app on GitHub — built with Lovable, Bolt, Base44, Cursor or by hand — into iPhone and Android apps. It adds Capacitor if the repo needs it, signs the builds, and ships them to TestFlight and Google Play from GitHub Actions, with no Mac or Xcode on your side. [Get started free](https://capwr.app/login) · [Lovable to App Store guide](https://capwr.app/guides/lovable-to-app-store)
