Node.js - не удается найти модуль

Я использую Node Boilerplate, и все это работало нормально, пока я не решил создать еще один проект поверх него (в другом каталоге).

Теперь у меня есть точно такая же база кода (этот проект AS 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, в которой говорится, что проблема заключается в несовместимой версии connect/express.

Но как это возможно? Исходный код точно такой же в двух папках, и он отлично работает в одной копии и не работает в другом?

Ответы

Ответ 1

Хорошо, позвольте мне ответить на мой собственный вопрос:

Извините за дезинформацию - эти две папки были не совсем одинаковыми (мне нужно будет изучить unix diff лучше). И там он требует ( "connect" ) в коде

Локальная проверка подключения к папке /lib имеет приоритет, но если она отсутствует - соединение будет загружаться из ~/.node_modules, как ранее устанавливал Рикардо.

Ответ 2

Разделяют ли две папки общий родитель? Node ищет модули в ~/.node_modules и /node_modules в каталоге приложения.