# npm can install packages in the parent folder

> Learn why npm can install packages in a parent folder: it walks up the tree looking for a package.json or node_modules, and how to fix it with npm init.

Author: [Flavio Copes](https://flaviocopes.com/about/) | Published: 2022-04-30 | Topics: [Node.js](https://flaviocopes.com/tags/node/) | Canonical: https://flaviocopes.com/npm-install-packages-parent-folder/

I've had some students of my bootcamp run into this problem I never noticed.

It's due to the behavior of [npm](https://flaviocopes.com/npm/) when installing a package in an empty folder.

I was suggesting to use `npm install <packagename`, for example in this way:

```jsx
npm install my-prime
```

in an empty folder.

By default this creates a [`package.json`](https://flaviocopes.com/package-json/) with the package as a dependency, a [`package-lock.json`](https://flaviocopes.com/package-lock-json/) and installs the package in `node_modules`.

But some people were not seeing this happen. Nothing seemed to happen.

What happened however is that they had a `package.json` file and a `node_modules` folder up in the directory tree. 

Maybe not even in the parent folder, but higher in the hierarchy.

Maybe they ran `npm install <package>` in their home folder without realizing, probably for a test.

`npm` will walk up the folder tree checking for a folder that contains either a `package.json` file, or a `node_modules` folder. If such a thing is found, then that is treated as the effective "current directory" for the purpose of running npm commands.

> [Source](https://docs.npmjs.com/cli/v7/configuring-npm/folders#more-information)

To fix this problem, the best solution is to remove the parent `package.json` and `node_modules`.

It's probably there by mistake.

Otherwise you could also run `npm init -y` in the folder to create a blank `package.json` file, then re-run the `npm install <package>` command, which will now work as expected.
