В узле почему require () не может найти модуль, который я только что установил с npm? - PullRequest
2 голосов
/ 14 ноября 2011

В случае, похожем на эту проблему, Я установил модуль с npm, но require('module') не может его найти.

my-machine:projectname me$ npm install express-csrf
npm info it worked if it ends with ok
npm info version 0.2.1
npm info install express-csrf@0.3.3
npm info activate express-csrf@0.3.3
npm info build Success: express-csrf@0.3.3
npm ok

Пока что такхорошо.Но тогда ...

my-machine:projectname me$ node
> require('express-csrf')
Error: Cannot find module 'express-csrf'
at Function._resolveFilename (module.js:317:11)
at Function._load (module.js:262:25)
at require (module.js:346:19)
at [object Context]:1:1
at Interface.<anonymous> (repl.js:171:22)
at Interface.emit (events.js:64:17)
at Interface._onLine (readline.js:153:10)
at Interface._line (readline.js:408:8)
at Interface._ttyWrite (readline.js:585:14)
at ReadStream.<anonymous> (readline.js:73:12)

npm говорит, что пакет есть:

my-machine:projectname me$ npm ls express-csrf
npm info it worked if it ends with ok
npm info version 0.2.1
express-csrf@0.3.3             active installed
npm ok

Обратите внимание, что новый модуль не появляется в каталоге / usr / local / lib / node, но он появляется в /usr/local/lib/node/.npm

my-machine:projectname me$ ls /usr/local/lib/node/express-csrf*
ls: /usr/local/lib/node/express-csrf*: No such file or directory
my-machine:projectname me$ ls /usr/local/lib/node/.npm/express-csrf*
0.3.3   active

Обновление: я должен упомянуть, что все работает, когда я полностью определяю путь в операторах require следующим образом:

require('/usr/local/lib/node/.npm/express-csrf/active/package/index.js')

Ответы [ 2 ]

2 голосов
/ 14 ноября 2011

Обновление npm.

Ваша проблема в том, что require () не ищет папку .npm.

Вы можете решить эту проблему, обновив npm, чтобы он размещал файлы в нужных местах. Кроме того, вы можете установить свои модули вручную в папку в корневом каталоге вашего проекта и потребовать ('../ mymodule')

0 голосов
/ 18 сентября 2012

Если вы используете Windows, используйте:

export NODE_PATH="C:\Users\IMarek\AppData\Roaming\npm\node_modules"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...