【发布时间】:2012-02-19 20:58:55
【问题描述】:
从 GitHub 拉下一个模块并按照说明构建它后,我尝试使用以下方法将其拉入现有项目:
> npm install ../faye
这似乎可以解决问题:
> npm list
/home/dave/src/server
└─┬ faye@0.7.1
├── cookiejar@1.3.0
├── hiredis@0.1.13
└── redis@0.7.1
但是 Node.js 找不到模块:
> 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)
我真的很想了解这里发生了什么,但我不知道下一步该往哪里看。有什么建议吗?
【问题讨论】:
-
node_modules目录应位于项目的根目录中,在您的情况下与app.js一起。为什么使用..npm 安装路径? -
将“npm install ../faye”更改为“npm install ../faye/build”后,它按预期工作。我不知道这是多么典型,但是 faye 在构建时会创建一个构建目录并将 package.json 的副本放在那里。 npm 不会在根级别抱怨 package.json,但它会引用该级别不存在的文件。
-
我解决了这个问题,但并没有真正解决我的真正问题,即如何解决这个问题。我会尝试提出一些改进 npm 和/或 node 的建议,让新手更容易避免这种情况。
-
浏览这个Link,你可能会知道它到底在哪里找不到你的模块..
-
检查天气您是否在安装它的同一文件夹中?如果你没有全局安装。
标签: node.js