在运行heroku本地网时,babel-node无法识别

我尝试在Heroku上部署Node.js API,但显示应用程序错误。

因此,使用“ heroku本地networking ”命令来testing任何错误..并得到一个错误,说'babel节点'不被识别为内部或外部命令,可操作的程序或batch file。

另一方面,当我运行命令'npm start'时,我没有得到任何错误,服务器开始运行。

的package.json

{ "name": "apollo-starter-kit", "version": "0.1.0", "description": "Minimal set of code to write a GraphQL server with Apollo graphql-tools", "scripts": { "start": "nodemon ./server.js --exec babel-node", "test": "echo \"Error: no test specified\" && exit 1", "lint": "eslint ." }, "repository": { "type": "git", "url": "git+https://github.com/apollostack/apollo-starter-kit.git" }, "keywords": [ "Node.js", "Javascript", "GraphQL", "Express", "Apollo", "Meteor" ], "author": "Jonas Helfer <jonas@helfer.email>", "license": "MIT", "bugs": { "url": "https://github.com/apollostack/apollo-starter-kit/issues" }, "homepage": "https://github.com/apollostack/apollo-starter-kit#readme", "dependencies": { "apollo-server": "^0.1.2", "casual": "^1.5.10", "cors": "^2.8.1", "express": "^4.13.4", "lodash": "^4.17.4", "mongoose": "^4.8.1", "sequelize": "^3.30.2", "sqlite": "^2.3.0" }, "devDependencies": { "babel-cli": "6.5.1", "babel-core": "^6.5.2", "babel-eslint": "^6.0.0-beta.6", "babel-loader": "6.2.3", "babel-plugin-inline-import": "^2.0.1", "babel-polyfill": "6.5.0", "babel-preset-es2015": "6.5.0", "babel-preset-react": "^6.5.0", "babel-preset-stage-0": "6.5.0", "casual": "^1.5.10", "eslint": "^2.4.0", "eslint-config-airbnb": "^6.1.0", "eslint-plugin-import": "^1.1.0", "eslint-plugin-react": "^4.2.3", "graphql": "^0.6.0", "nodemon": "^1.9.1" }, "peerDependencies": { "graphql": "^0.5.0 || ^0.6.0" }, "eslintConfig": { "parser": "babel-eslint", "extends": [ "airbnb/base", "plugin:import/errors" ], "rules": { "no-use-before-define": 0, "arrow-body-style": 0, "dot-notation": 0, "no-console": 0 }, "env": { "mocha": true } } } 

我认为最可能的原因是babel是开发依赖的一部分,这些默认情况下不通过官方的node.js buildpack安装。 改变NPM_CONFIG_PRODUCTIONfalse ,它应该工作。

你可以使用命令行

 heroku config:set NPM_CONFIG_PRODUCTION=false 

您可以随时login到Heroku dyno检查是否一切安装正确

 heroku run bash