**Project setup**

I have a Typescript project I'm running in a local Docker container. I have the following two volumes (this is in `docker-compose.yml`):

```
volumes:
  - .:/node/app

```

This first volume is a bind mount, to copy in my app's source code into the container.

```
  - /node/app/node_modules/

```

This second volume is **inside** the bind mount. This means that when an `npm install` runs inside the container, in the project's `/node/app` working directory, the dependencies will be installed into the `node_modules` folder **in the container only.**

My understanding is this is a common practice to allow the host and the container to have separate `node_modules`. My intention for this setup is to install and run some tools in the host only, like **prettier**, so I can `npm install --only=development` in the host, and get prettier installed, as its specified as a devDependency, and now my editor can use prettier.

**The problem**

In my editor, when the typescript compiler runs, it shows me "Cannot find module" errors:

[![cannot find module errors in visual studio code](https://i.stack.imgur.com/e8x15.png)](https://i.stack.imgur.com/e8x15.png)

My understanding is this happens because those modules aren't on disk. This is because of my above setup. I have made the `node_modules` containing my **non-dev dependencies**, like React, only available inside the container.

**My question**

I'm new to Docker, and my understanding is it's generally good to do things inside the container, including development. I'm trying to avoid an `npm install` in the host, because I don't really want or need all of the dependencies in the host. I also don't want to have to `npm install` twice, once on host and once in container, when adding a new dependency.

Is there a way to stop Typescript from erroring if the node\_modules imported aren't present (like only load their typing definitions, maye?), **or** is there a way to point Typescript's compiler in Visual Studio Code somehow to the container, so it can see them without having to install them on the host, while still letting me install other dependencies on the host, like prettier?

Or is the only way to `npm install` on the host?