Connor Leech
Connor Leech

Reputation: 18833

npm install doesn't create node_modules directory

I am trying to do a homework for a mongodb uni course. They gave us some files, instructions are:

run npm install mongodb then node app.js

for some reason npm install does not create a node_modules directory but I don't see any build errors:

mongo-uni/hw1-2$ npm install mongodb
npm WARN package.json [email protected] path is also the name of a node core module.
npm http GET https://registry.npmjs.org/mongodb
npm http 304 https://registry.npmjs.org/mongodb
npm http GET https://registry.npmjs.org/bson/0.2.5
npm http GET https://registry.npmjs.org/kerberos/0.0.3
npm http 304 https://registry.npmjs.org/kerberos/0.0.3
npm http 304 https://registry.npmjs.org/bson/0.2.5

> [email protected] install /home/jasonshark/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild 2> builderror.log) || (exit 0)

make: Entering directory `/home/jasonshark/node_modules/mongodb/node_modules/kerberos/build'
  SOLINK_MODULE(target) Release/obj.target/kerberos.node
  SOLINK_MODULE(target) Release/obj.target/kerberos.node: Finished
  COPY Release/kerberos.node
make: Leaving directory `/home/jasonshark/node_modules/mongodb/node_modules/kerberos/build'

> [email protected] install /home/jasonshark/node_modules/mongodb/node_modules/bson
> (node-gyp rebuild 2> builderror.log) || (exit 0)

make: Entering directory `/home/jasonshark/node_modules/mongodb/node_modules/bson/build'
  CXX(target) Release/obj.target/bson/ext/bson.o
make: Leaving directory `/home/jasonshark/node_modules/mongodb/node_modules/bson/build'
[email protected] ../../../node_modules/mongodb
├── [email protected]
└── [email protected]
mongo-uni/hw1-2$ node app.js
Failed to load c++ bson extension, using pure JS version
'No document found'

Upvotes: 95

Views: 273393

Answers (14)

Carlost
Carlost

Reputation: 837

I just fixed it!

first be sure to be in your project folder, then run:

1. npm init
2. npm install --save   
3. Install any module.

This is the result:

enter image description here

Upvotes: 3

Dr. Ayilara
Dr. Ayilara

Reputation: 91

I had a similar problem to this. It turns out that this can be caused by a number of things. The normal workflow is this:

npm init generates a package.json file

Next

npm install <package name> generates node_modules folder

In my case, the problem was because the configuration of npm in my .npmrc file was wrong. I was essentially requesting packages from the wrong URL. As of now, the public npm registry URL is

https://registry.npmjs.org/

This may be the problem in your project. So locate the .npmrc file on your system and ensure its pointing to the right URL.

Upvotes: 0

KodFun
KodFun

Reputation: 423

This answer is for users like my students who named their windows account name with unicode characters (other than a-z) :) They placed their project folder on their desktop folder.

Please make sure that your project folder path doesn't include special characters such as "ÇŞİ " etc..

In our case, moving folder to C:\ fixed the problem.

Upvotes: 0

Shiv
Shiv

Reputation: 149

cd into the directory and then run

npm install node

Upvotes: 4

cssyphus
cssyphus

Reputation: 40038

A few things to try that worked for me:

  1. Try running the NPM install from outside of your IDE, just from the bash / PowerShell / cmd prompt. It will work the same, and might complete successfully.

  2. Try upgrading NPM:

npm install -g npm

or, to stay within a specific major version:

npm install -g @latest-7

THEN run your npm install again.

Upvotes: 2

Thuy
Thuy

Reputation: 1657

For me, I had to go into the directory where the package.json is itself and then run npm install in order to see node_modules folder. Apparently, running npm install in a directory that has NO package.json does not error or tell you otherwise.

Upvotes: 0

Mahdi mehrabi
Mahdi mehrabi

Reputation: 1734

my problem was to copy the whole source files contains .idea directory and my webstorm terminal commands were run on the original directory of the source
I delete the .idea directory and it worked fine

Upvotes: 0

Piyush Sagar
Piyush Sagar

Reputation: 3129

NPM has created a node_modules directory at '/home/jasonshark/' path.

From your question it looks like you wanted node_modules to be created in the current directory.

For that,

  1. Create project directory: mkdir <project-name>
  2. Switch to: cd <project-name>
  3. Do: npm init This will create package.json file at current path
  4. Open package.json & fill it something like below

    {
        "name": "project-name",
        "version": "project-version",
        "dependencies": {
            "mongodb": "*"
        }
    }
    
  5. Now do : npm install OR npm update

Now it will create node_modules directory under folder 'project-name' you created.

Upvotes: 49

Abhijeet Navgire
Abhijeet Navgire

Reputation: 753

For node_modules you have to follow the below steps

1) In Command prompt -> Goto your project directory.

2) Command :npm init

3) It asks you to set up your package.json file

4) Command: npm install or npm update

Upvotes: -3

wendyh
wendyh

Reputation: 281

If you have a package-lock.json file, you may have to delete that file then run npm i. That worked for me

Upvotes: 26

Hellodan
Hellodan

Reputation: 1208

As soon as you have run npm init and you start installing npm packages it'll create the node_moduals folder after that first install

e.g

npm init

(Asks you to set up your package.json file)

npm install <package name here> --save-dev

installs package & creates the node modules directory

Upvotes: 4

wantrapreneur
wantrapreneur

Reputation: 420

I ran into this trying to integrate React Native into an existing swift project using cocoapods. The FB docs (at time of writing) did not specify that npm install react-native wouldn't work without first having a package.json file. Per the RN docs set your entry point: (index.js) as index.ios.js

Upvotes: 0

cheshireoctopus
cheshireoctopus

Reputation: 1790

See @Cesco's answer: npm init is really all you need


I was having the same issue - running npm install somePackage was not generating a node_modules dir.

I created a package.json file at the root, which contained a simple JSON obj:

{
    "name": "please-work"
}

On the next npm install the node_modules directory appeared.

Upvotes: 14

CESCO
CESCO

Reputation: 7758

npm init

It is all you need. It will create the package.json file on the fly for you.

Upvotes: 107

Related Questions