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 в каталоге приложения.
Ответ 3
@see node.js express модуль не загружается должным образом в последнем комментарии, возможно, он помогает
Основная идея заключается в том, чтобы установить модуль внутри вашей папки приложения, а не на системный уровень