2017-03-07 20 views
2

我尝试在Heroku上部署Node.js API,但显示应用程序错误。babel-node在运行时未被识别heroku local web

所以,用“Heroku的本地Web”命令来测试任何error..and得到了一个错误说“通天节点”不被识别为一个内部或外部命令,可操作的程序或批处理文件。

在另一方面,当我运行命令“NPM启动”我没有得到任何错误和服务器开始运行。

的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 <[email protected]>", 
     "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 
     } 
     } 
    } 

回答

2

我认为最可能的原因是babel是开发依赖的一部分,那些不是默认安装通过官方的node.js buildpack。将NPM_CONFIG_PRODUCTION更改为false,它应该可以工作。

您可以使用命令行

heroku config:set NPM_CONFIG_PRODUCTION=false 

您可以随时登录到Heroku的测功机,以检查是否正确安装

heroku run bash 
一切