886

After pulling down a module from GitHub and following the instructions to build it, I try pulling it into an existing project using:

> npm install ../faye

This appears to do the trick:

> npm list
/home/dave/src/server
└─┬ [email protected]
  ├── [email protected]
  ├── [email protected]
  └── [email protected]

But Node.js can't find the module:

> node app.js
node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: Cannot find module 'faye'
    at Function._resolveFilename (module.js:334:11)
    at Function._load (module.js:279:25)
    at Module.require (module.js:357:17)
    at require (module.js:368:17)
    at Object.<anonymous> (/home/dave/src/server/app.js:2:12)
    at Module._compile (module.js:432:26)
    at Object..js (module.js:450:10)
    at Module.load (module.js:351:31)
    at Function._load (module.js:310:12)
    at Array.0 (module.js:470:10)

I really want to understand what is going on here, but I'm at a bit of a loss as to where to look next. Any suggestions?

8
  • 12
    The node_modules directory is expected to be in the root of your project, alongisde app.js in your case. Why did you use .. the npm install path? Commented Jan 26, 2012 at 19:19
  • 3
    After changing "npm install ../faye" to "npm install ../faye/build", it works as expected. I don't know how typical this is, but faye creates a build directory when it is built and puts a copy of package.json in there. npm doesn't complain about package.json at the root level, but it references files that don't exist at that level. Commented Jan 26, 2012 at 20:48
  • 7
    I solved the problem, but didn't really get any resolution to my real question, which was how to troubleshoot this issue. I'll try to come up with some suggestions for improving npm and/or node to make it easier for newcomers to avoid this situation. Commented Jan 26, 2012 at 20:54
  • 1
    Go through this Link, you may get some idea like where exactly its failing to lookup your modules.. Commented Mar 18, 2013 at 9:58
  • 1
    Check weather you are in the same folder where you installed it ? if you did not installed it globally . Commented Jan 9, 2019 at 8:59

34 Answers 34

1
2
0

what ended up working for me was making sure to include any merge-deep dependencies as an external in your webpack config:

externals: {
    puppeteer: 'require("puppeteer")',
}

And to declare the node_modules path relative to your package.json in your package.json as an 'extraResource'.

"extraResources": [
    "node_modules/puppeteer,
}
Sign up to request clarification or add additional context in comments.

Comments

-2

Please install the new CLI v3 (npm install -g ionic@latest).

If this issue is still a problem in CLI v3. Thank you!

Comments

-3

First of all, yes, a part of my answer definitely is helpful to solve the error that is posted by OP. Secondly, after trying the below step, I faced a couple of other errors, and so, have written the solution of those too.

(Psst! I am not sure if I've successfully helped in solving the above error, or if I've broken some rule or format of answering, but I faced the above error and some others and it took much time for me to find the proper solutions for those errors. I'm writing the complete solution because in case, if someone else also faces these errors, then he'll hopefully get a solution here.)

So adding to, and elaborating the answer provided by PrashanthiDevi, and also adding my personal experience, here it is:

I am new to the whole e2e and unit tests part. I started looking into this part from Protractor. Now I already had the files in which tests were written, but I had to run the tests.

I had already installed all the required softwares and tools, but when I initially ran the code for running the tests, gulp itest, I got this 'Cannot find module' Error. After going through many different questions on SO, I found one answer that I thought could help getting a solution.

The person had suggested to run the command npm install in my project folder.

The reason for doing this was to update the node-modules folder, inside our project folder, with all the required and necessary files and dependencies.

(The below part maybe irrelevant with this question, but might be helpful if anyone came across the same situation that I faced.)

The above step surely solved my previous error, but threw a new one! This time the error being Could not find chromedriver at '..\node_modules\protractor\selenium\chromedriver'.

However, the solution of this error was pretty silly (and funny) to me. I already had the chromedriver file in my selenium folder. But, turns out that the above error was coming because my chromedriver files were inside selenium folder and not inside chromedriver folder. So, creating a chromedriver folder and copying the chromedriver files there solved my problem!

Also, for the error: Timed out waiting for the WebDriver Server, you could add this line of code to conf.js file inside exports.config{}:

seleniumAddress: 'http://localhost:8080/'

Hope this helps!

Comments

-37

Change the directory and point to your current project folder and then "npm install". .

This will install all dependencies and modules into your project folder.

Comments

1
2

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.