将Node / Express应用程序部署到Heroku / Production - Babel / ES6错误

时间:2016-07-17 23:12:46

标签: javascript node.js heroku ecmascript-6 babel

我在使用 babel(使用babel-cli) + es6 javascript 部署到heroku / production时遇到了很多麻烦。我的应用程序是一个简单的快速和节点服务器,用es6风格的javascript编写。

我正在使用" babel-cli " (通过package.json安装)和package.json中的 postinstall 脚本,将我的es6 javascript预编译为" 构建"启动服务器之前的文件夹。

奇怪的是,所有东西都可以顺利地用 babel-cli 进行开发,但不能用于生产。

部署到production / heroku时,构建过程会卡在Makefile中的 babel 命令中并引发错误。

的package.json

{
  "name": "messenger-basic",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "clean": "rm -rf build && mkdir build",
    "build-server": "babel src --out-dir build",
    "build": "npm run clean && npm run build-server",
    "postinstall": "make build",
    "start": "node ./build/server.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "babel-preset-es2015": "^6.9.0",
    "body-parser": "^1.15.2",
    "express": "^4.14.0",
    "request": "^2.72.0"
  },
  "engines": {
    "node": "4.4.5"
  },
  "devDependencies": {
    "babel-cli": "^6.10.1",
    "babel-preset-stage-2": "^6.11.0"
  }
}

生成文件

build: clean server_build

clean:
    rm -rf build
    mkdir -p build

server_build:
    babel src --out-dir build
    rsync -av --include \*/ --include \*.json --exclude \*  ./src/ ./build/
    rsync -av --include \*/ --include \*.ejs --exclude \*  ./src/ ./build/

.PHONY: build clean

错误

You have mistakenly installed the `babel` package, which is a no-op in Babel 6.

Babel's CLI commands have been moved from the `babel` package to the `babel-cli` package.

任何帮助将不胜感激!设置服务器的东西是我最糟糕的克星! :(

1 个答案:

答案 0 :(得分:0)

我通常通过weback运行babel,所以我在这里可能是错的(我通常不会使用makefile),但是,我认为你需要安装babel-core才能正常运行?看起来这个错误与你刚刚拥有" babel"安装,这将无法与v6一起使用。您需要安装其组件,至少需要" babel-core。"