2016-09-29 1 views
0

Я создал приложение Rails API backend и внутри приложения в клиенте папки, который я создал для приложения-приложения-приложения для моего интерфейса. Он хорошо работает на моей локальной машине, но не работает на Heroku с ошибкой:Rails API с Create-React-App на Heroku: команда npm не найдена

npm: command not found 

Это структура приложения:

rails-app 
    - app 
    - controller 
    - model 
    - ... 
    - client 
    - package.json 
    - index.jsx 
    - ... 
    - config 
    - db 
    - ... 
    - Procfile 

Внутри PROCFILE у меня есть:

web: cd client && npm start 
api: bundle exec rails s -p 3001 

Внутри package.json:

{ 
    "name": "client", 
    "version": "0.1.0", 
    "private": true, 
    "proxy": "http://localhost:3001/", 
    "devDependencies": { 
    "react-scripts": "0.6.1" 
    }, 
    "dependencies": { 
    "babel-loader": "^6.2.5", 
    "babel-preset-es2015": "^6.14.0", 
    "babel-preset-react": "^6.11.1", 
    "firebase": "^3.4.1", 
    "jquery": "^3.1.1", 
    "react": "^15.3.2", 
    "react-dom": "^15.3.2" 
    }, 
    "scripts": { 
    "start": "react-scripts start", 
    "build": "react-scripts build", 
    "test": "react-scripts test --env=jsdom", 
    "eject": "react-scripts eject" 
    } 
} 

(Обратите внимание на прокси-сервер, связь с моей Rails бэкэнда)

Heroku: enter image description here

Heroku журналы:

2016-09-29T15:12:31.193617+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=strv-address-book.herokuapp.com request_id=bc33286a-3dd3-475f-b974-a00c5aee42f7 fwd="151.227.204.173" dyno= connect= service= status=503 bytes= 
2016-09-29T15:12:44.403333+00:00 heroku[api.1]: Restarting 
2016-09-29T15:12:44.404060+00:00 heroku[api.1]: State changed from up to starting 
2016-09-29T15:12:45.064536+00:00 heroku[web.1]: State changed from crashed to starting 
2016-09-29T15:12:47.345132+00:00 heroku[api.1]: Starting process with command `bundle exec rails s -p 3001` 
2016-09-29T15:12:47.459080+00:00 heroku[web.1]: Starting process with command `cd client && npm start` 
2016-09-29T15:12:47.931743+00:00 heroku[api.1]: State changed from starting to up 
2016-09-29T15:12:48.531931+00:00 heroku[api.1]: Stopping all processes with SIGTERM 
2016-09-29T15:12:49.283096+00:00 heroku[web.1]: State changed from starting to crashed 
2016-09-29T15:12:49.263399+00:00 heroku[web.1]: Process exited with status 127 
2016-09-29T15:12:49.036142+00:00 app[web.1]: bash: npm: command not found 
2016-09-29T15:12:49.352458+00:00 app[api.1]: - Gracefully stopping, waiting for requests to finish 
2016-09-29T15:12:49.352608+00:00 app[api.1]: === puma shutdown: 2016-09-29 15:12:49 +0000 === 
2016-09-29T15:12:49.352645+00:00 app[api.1]: - Goodbye! 
2016-09-29T15:12:49.352737+00:00 app[api.1]: Exiting 
2016-09-29T15:12:49.480691+00:00 heroku[api.1]: Process exited with status 0 
2016-09-29T15:12:50.284874+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=strv-address-book.herokuapp.com request_id=c262f174-97c8-4326-a20b-3f13f2f6e99b fwd="151.227.204.173" dyno= connect= service= status=503 bytes= 
2016-09-29T15:12:50.976612+00:00 app[api.1]: => Rails 5.0.0.1 application starting in production on http://0.0.0.0:3001 
2016-09-29T15:12:50.976587+00:00 app[api.1]: => Booting Puma 
2016-09-29T15:12:50.976617+00:00 app[api.1]: => Run `rails server -h` for more startup options 
2016-09-29T15:12:51.938112+00:00 app[api.1]: Puma starting in single mode... 
2016-09-29T15:12:51.938132+00:00 app[api.1]: * Version 3.6.0 (ruby 2.3.0-p0), codename: Sleepy Sunday Serenity 
2016-09-29T15:12:51.938133+00:00 app[api.1]: * Min threads: 5, max threads: 5 
2016-09-29T15:12:51.938134+00:00 app[api.1]: * Environment: production 
2016-09-29T15:12:51.938225+00:00 app[api.1]: * Listening on tcp://0.0.0.0:3001 
2016-09-29T15:12:51.938543+00:00 app[api.1]: Use Ctrl-C to stop 
2016-09-29T15:12:52.380906+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=strv-address-book.herokuapp.com request_id=5d5f2cbb-4fd0-40f2-a8d4-86c2b8cf14f3 fwd="151.227.204.173" dyno= connect= service= status=503 bytes= 

(Я смог запустить Heroku запустить рельсы C без каких-либо ошибок)

Как рассказать герою об реагировании приложения или как я могу заставить его работать?

ответ

0

Кажется, проблема заключается в том, что ваша окружающая среда Heroku не знает, как запустить npm, что понятно, потому что по умолчанию Heroku имеет вид buildpack для использования в вашем приложении.

Вы можете добавить buildpack узла heroku, следуя this.

Сообщите мне, если это поможет, или если вам необходимо дополнительное разъяснение

+0

Спасибо, oreoluwa. Установите buildpacks таким образом: 1. heroku/ruby, 2. heroku/nodejs и нажмите изменения, но не удалось развернуть: Не удалось обнаружить set buildpack https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/nodejs .tgz дистанционный пульт. Вы знаете, как его решить? Должен ли я сказать heroku, в какой папке находится приложение для моего узла/приложения? – Dudis

+0

Попробуйте изменить расположение вашего пакета.json в корневое приложение «rails-app» и соответствующим образом обновите свои сценарии и основные. Не совсем уверенно, но я думаю, что это исправить. – oreoluwa

+0

Эта ссылка может помочь вам настроить ее на Heroku.https: //medium.com/superhighfives/a-top-shelf-web-stack-rails-5-api- activeadmin создать реагирующий-приложение-de5481b7ec0b # .d281agrql – Koen

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