package.json启动脚本,babel-node:在heroku部署中找不到

当我运行heroku local或当我只是做本地npm start ,我的应用程序生成并运行良好。 但是,当我部署到Heroku,该应用程序崩溃,说无法findbabel节点。

这里是日志输出:

 2016-04-21T22:20:44.320025+00:00 heroku[api]: Deploy 5d9a9da by eagsalazar@gmail.com 2016-04-21T22:20:44.320084+00:00 heroku[api]: Release v9 created by eagsalazar@gmail.com 2016-04-21T22:20:44.542062+00:00 heroku[slug-compiler]: Slug compilation started 2016-04-21T22:20:44.542069+00:00 heroku[slug-compiler]: Slug compilation finished 2016-04-21T22:20:44.501025+00:00 heroku[web.1]: State changed from crashed to starting 2016-04-21T22:20:46.278065+00:00 heroku[web.1]: Starting process with command `npm start` 2016-04-21T22:20:50.467407+00:00 app[web.1]: 2016-04-21T22:20:50.467434+00:00 app[web.1]: > qc-server@1.0.0 start /app 2016-04-21T22:20:50.467435+00:00 app[web.1]: > babel-node index.js 2016-04-21T22:20:50.467436+00:00 app[web.1]: 2016-04-21T22:20:50.479490+00:00 app[web.1]: sh: 1: babel-node: not found 2016-04-21T22:20:50.521936+00:00 app[web.1]: 2016-04-21T22:20:50.538822+00:00 app[web.1]: npm ERR! Linux 3.13.0-79-generic 2016-04-21T22:20:50.539334+00:00 app[web.1]: npm ERR! argv "/app/.heroku/node/bin/node" "/app/.heroku/node/bin/npm" "start" 2016-04-21T22:20:50.539595+00:00 app[web.1]: npm ERR! node v5.10.1 2016-04-21T22:20:50.555119+00:00 app[web.1]: npm ERR! npm v3.8.3 2016-04-21T22:20:50.555339+00:00 app[web.1]: npm ERR! file sh 2016-04-21T22:20:50.555549+00:00 app[web.1]: npm ERR! code ELIFECYCLE 2016-04-21T22:20:50.555769+00:00 app[web.1]: npm ERR! errno ENOENT 2016-04-21T22:20:50.555965+00:00 app[web.1]: npm ERR! syscall spawn 2016-04-21T22:20:50.556142+00:00 app[web.1]: npm ERR! qc-server@1.0.0 start: `babel-node index.js` 2016-04-21T22:20:50.556305+00:00 app[web.1]: npm ERR! spawn ENOENT 2016-04-21T22:20:50.556488+00:00 app[web.1]: npm ERR! 2016-04-21T22:20:50.556666+00:00 app[web.1]: npm ERR! Failed at the qc-server@1.0.0 start script 'babel-node index.js'. 2016-04-21T22:20:50.556854+00:00 app[web.1]: npm ERR! Make sure you have the latest version of node.js and npm installed. 2016-04-21T22:20:50.557017+00:00 app[web.1]: npm ERR! If you do, this is most likely a problem with the qc-server package, 2016-04-21T22:20:50.557175+00:00 app[web.1]: npm ERR! not with npm itself. 2016-04-21T22:20:50.557343+00:00 app[web.1]: npm ERR! Tell the author that this fails on your system: 2016-04-21T22:20:50.557564+00:00 app[web.1]: npm ERR! babel-node index.js 2016-04-21T22:20:50.557741+00:00 app[web.1]: npm ERR! You can get information on how to open an issue for this project with: 2016-04-21T22:20:50.557916+00:00 app[web.1]: npm ERR! npm bugs qc-server 2016-04-21T22:20:50.558110+00:00 app[web.1]: npm ERR! Or if that isn't available, you can get their info via: 2016-04-21T22:20:50.558306+00:00 app[web.1]: npm ERR! npm owner ls qc-server 2016-04-21T22:20:50.558492+00:00 app[web.1]: npm ERR! There is likely additional logging output above. 2016-04-21T22:20:50.563859+00:00 app[web.1]: 2016-04-21T22:20:50.567790+00:00 app[web.1]: npm ERR! Please include the following file with any support request: 2016-04-21T22:20:50.568004+00:00 app[web.1]: npm ERR! /app/npm-debug.log 2016-04-21T22:20:51.824822+00:00 heroku[web.1]: State changed from starting to crashed 2016-04-21T22:20:51.808246+00:00 heroku[web.1]: Process exited with status 1 

我的package.json:

 { "name": "qc-server", "version": "1.0.0", "description": "xxxx", "main": "index.js", "scripts": { "test": "mocha --compilers js:babel-core/register --require ./test/test_helper.js 'test/**/*.js'", "test:watch": "npm run test -- --watch -G", "start": "babel-node index.js" }, "babel": { "presets": [ "es2015" ] }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "babel-cli": "^6.6.0", "babel-core": "^6.6.0", "babel-eslint": "^5.0.0", "babel-preset-es2015": "^6.6.0", "chai": "^3.5.0", "chai-immutable": "^1.5.3", "eslint": "^2.2.0", "eslint-config-airbnb": "^6.0.2", "eslint-plugin-react": "^4.1.0", "mocha": "^2.4.5" }, "dependencies": { "express": "^4.13.4", "immutable": "^3.7.6", "node-uuid": "^1.4.7", "redux": "^3.3.1", "socket.io": "^1.4.5" } } 

任何人有build议?

您必须在您的package.json中包含依赖项,以便在部署时进行安装。

 $ npm install babel-cli -S 

比你必须改变你的start命令是这样的:

 "start": "babel-node index.js" 

有关在heroku.com上部署babel的更多信息,请参阅此处 。

警告:在生产中不推荐使用babel-node

我得到了同样的问题,但我认为设置NPM_CONFIG_PRODUCTION=false安装devDependencies会更好。 我用下面的命令:

 heroku config:set NPM_CONFIG_PRODUCTION=false