Node.js - 无法找到模块

Node.js - 无法找到模块

问题描述:

我使用的是Node Boilerplate,它一切正常,直到我决定在其上创建另一个项目(在另一个目录中)。Node.js - 无法找到模块

现在我在两个不同的文件夹中具有完全相同的代码库(此项目为IS)。我可以运行没有任何问题它的一个,但另一个与失败:这里

% node app.js 
node.js:116 
     throw e; // process.nextTick error, or 'error' event on first tick 
     ^
Error: Cannot find module 'connect/middleware/router' 
    at Function._resolveFilename (module.js:299:11) 
    at Function._load (module.js:245:25) 
    at require (module.js:327:19) 
    at Object.<anonymous> (/home/gotts/Sites/nodejs-uploadr/lib/express/lib/express/server.js:17:14) 
    at Module._compile (module.js:383:26) 
    at Object..js (module.js:389:10) 
    at Module.load (module.js:315:31) 
    at Function._load (module.js:276:12) 
    at require (module.js:327:19) 
    at Object.<anonymous> (/home/gotts/Sites/nodejs-uploadr/lib/express/lib/express/index.js:28:31) 

有类似的问题,解释 - https://github.com/visionmedia/express/issues/535它说,问题是出在连接/快递的不兼容版本。

但这怎么可能?源代码在两个文件夹中完全相同,它在一个副本中工作正常,在另一个副本中失败?

OK,让我来回答我的问题:

对不起,误导 - 这两个文件夹是不完全一样的(我要去需要学习UNIX DIFF更好)。然后在代码中需要(“连接”)

连接到/ lib文件夹的本地检出优先,但如果它不存在 - 连接将按照Ricardo以前设置的从〜/ .node_modules加载。

这两个文件夹共享一个共同的父母吗?节点在应用程序目录中的〜/ .node_modules和/ node_modules中查找模块。

@see在最后的评论node.js express module not loading properly,也许它可以帮助

的基本思想背后却是安装模块您的应用程序文件夹内,而不是在一个系统级

+0

这对我的作品,但我我很困惑,为什么使用'-g'安装系统级别在正在运行的js文件中找不到模块。 – Adam 2014-10-24 04:28:23