Babel和Deploy Nodejs到Google App Engine

时间:2017-03-07 15:49:55

标签: node.js google-app-engine deployment ecmascript-6 babeljs

我是一个新手nodejs。我在将nodejs应用程序部署到谷歌应用程序引擎时遇到了麻烦。这是我的错误,我一直试图解决它,但它不起作用。我已经安装了babel。

错误

  

更新服务[默认] ...失败   错误:(gcloud.app.deploy)错误响应:[9]   应用程序启动错误:

     

restaurant_api@1.0.0 prestart / app   npm run -s build

     

您错误地安装了babel包,这是Babel 6中的无操作。   Babel的CLI命令已从babel包移至babel-cli包。

     

npm uninstall babel

     

npm install --save-dev babel-cli

这是我的package.json

 "main": "dist",
 "scripts": {
    "dev": "NODE_ENV=development nodemon -w src --exec \"babel-node src --presets es2015,stage-0\"",
    "build": "babel src -s -D -d dist --presets es2015,stage-0",
    "start": "NODE_ENV=production pm2 start dist",
    "prestart": "npm run -s build",
    "lint": "eslint src",
    "test": "echo \"Error: no test specified\" && exit 1",
    "babel-version": "babel --version"
  },
  "eslintConfig": {
    "parserOptions": {
      "ecmaVersion": 7,
      "sourceType": "module"
    },
    "env": {
      "node": true
    },
    "rules": {
      "no-console": 0,
      "no-unused-vars": 1
    }
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "babel": "^6.23.0",
    "body-parser": "^1.17.0",
    "express": "^4.15.0",
    "express-jwt": "^5.1.0",
    "jsonwebtoken": "^7.3.0",
    "mongoose": "^4.8.5",
    "passport": "^0.3.2",
    "passport-local": "^1.0.0",
    "passport-local-mongoose": "^4.0.0",
    "pm2": "^2.4.2"
  },
  "devDependencies": {
    "babel-cli": "^6.23.0",
    "babel-eslint": "^7.1.1",
    "babel-preset-es2015": "^6.22.0",
    "babel-preset-stage-0": "^6.22.0",
    "eslint": "^3.16.1"
  }

3 个答案:

答案 0 :(得分:4)

问题很简单,如果你清楚地注意到GAE,就不会安装dev-dependencies。所以把你的设备移到deps里面,就像我做的那样,babel没有发现错误消失了。

    {
  "name": "scraping",
  "version": "0.3.0",
  "description": "Starter project for an ES6 RESTful Express API",
  "main": "dist",
  "scripts": {
    "dev": "nodemon -w src --exec \"babel-node src --presets es2015,stage-0\"",
    "build": "babel src -s -D -d dist --presets es2015,stage-0",
    "start": "node dist",
    "prestart": "npm run -s build",
    "test": "eslint src"
  },
  "eslintConfig": {
    "extends": "eslint:recommended",
    "parserOptions": {
      "ecmaVersion": 7,
      "sourceType": "module"
    },
    "env": {
      "node": true
    },
    "rules": {
      "no-console": 0,
      "no-unused-vars": 1
    }
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/developit/express-es6-rest-api.git"
  },
  "author": "Saransh  Sharma <jason@developit.ca>",
  "license": "MIT",
  "dependencies": {
    "body-parser": "^1.13.3",
    "compression": "^1.5.2",
    "cors": "^2.7.1",
    "express": "^4.13.3",
    "morgan": "^1.8.0",
    "resource-router-middleware": "^0.6.0",
    "@jonstuebe/scraper": "^0.1.4",
    "babel-cli": "^6.9.0",
    "babel-core": "^6.9.0",
    "babel-preset-es2015": "^6.9.0",
    "babel-preset-stage-0": "^6.5.0",
    "eslint": "^3.1.1",
    "nodemon": "^1.9.2"
  },
  "devDependencies": {
    "babel-cli": "^6.9.0",
    "babel-core": "^6.9.0",
    "babel-preset-es2015": "^6.9.0",
    "babel-preset-stage-0": "^6.5.0",
    "eslint": "^3.1.1",
    "nodemon": "^1.9.2"
  },
  "bugs": {
    "url": "https://github.com/developit/express-es6-rest-api/issues"
  },
  "homepage": "https://github.com/developit/express-es6-rest-api#readme",
  "keywords": [
    "scraper",
    "product",
    "from",
    "amazon"
  ]
}

答案 1 :(得分:1)

线索在错误消息中。

在你的devDependencies部分,你已经包含了babel-cli。 但是,您的依赖项部分仍然引用"babel": "^6.23.0"

要么删除这一行,要么用babel-cli替换它,留下你:

"dependencies": {
  "babel-cli": "^6.23.0",
  "body-parser": "^1.17.0",
  "express": "^4.15.0",
  "express-jwt": "^5.1.0",
  "jsonwebtoken": "^7.3.0",
  "mongoose": "^4.8.5",
  "passport": "^0.3.2",
  "passport-local": "^1.0.0",
  "passport-local-mongoose": "^4.0.0",
  "pm2": "^2.4.2"
},

答案 2 :(得分:-1)

你需要全局安装babel-cli,即运行命令&#34; npm install babel-cli -g&#34;作为构建npm脚本的一部分,或创建一个安装它的安装脚本,如果你想让它更有条理,以防你以后需要添加更多东西。

"scripts": {
"dev": "NODE_ENV=development nodemon -w src --exec \"babel-node src --presets es2015,stage-0\"",
"build": "npm install bable-cli -g && babel src -s -D -d dist --presets es2015,stage-0",