2016-05-10 3 views
0

ОК, у меня есть экспресс-приложение, которое бросает эту ошибку при запуске при развертывании в Heroku. Приложение собирает и работает нормально локально:Heroku: Не удается найти модуль 'mongodb'

Cannot find module 'mongodb' 

Это приложение было работать, пока я не перераспределить его вчера ... вот мой package.json, который был неизменным

{ 
    "name": "fitness-tracker", 
    "version": "0.0.0", 
    "private": true, 
    "scripts": { 
     "start": "node ./bin/www" 
    }, 
    "dependencies": { 
     "express": "~4.9.0", 
     "body-parser": "~1.8.1", 
     "cookie-parser": "~1.3.3", 
     "promise": "~6.0.1", 
     "morgan": "~1.3.0", 
     "serve-favicon": "~2.1.3", 
     "debug": "~2.0.0", 
     "mongodb-core": "*", 
     "mongoskin": "~2.0.0", 
     "express-handlebars": "~1.1.0", 
     "moment": "~2.0.0", 
     "moment-timezone": "^0.3.1", 
     "q": "~1.0.1", 
     "compass": "~0.1.0", 
     "apm": "*" 
    }, 
    "devDependencies": { 
     "moment-timezone": "^0.3.1" 
    } 

Идеи?

+3

Вы пытались выполнить чистую установку на своей собственной машине? Также попробуйте добавить поле 'engines' в' package.json'. –

+1

Указание версии узла в машинах разрешило проблему. Благодаря! – SDG

ответ

1

Таким образом, проблема заключалась в разрешении пакета на основе версии узла. Поскольку NodeJS быстро развивается, хорошей практикой является включение спецификации engines в ваш package.json.

При автоматическом развертывании на различных провайдерах облачных вычислений это помогает им использовать только указанный узел & версия для npm. Это были все пакеты, которые извлекают выборки для этой версии узла, и, следовательно, меньше шансов на неправильное использование приложения.

Подробнее: https://docs.npmjs.com/files/package.json#engines

0

Также всегда стоит попробовать: отключить Heroku строить кэш, чтобы обновить каталог node_modules.

В записи Heroku CLI:

$ heroku config:set NODE_MODULES_CACHE=false 
$ git commit -am 'disable node_modules cache' --allow-empty 
$ git push heroku master 

here Как было описано.

Смежные вопросы