【发布时间】:2016-11-20 11:24:53
【问题描述】:
我在使用 babel(使用 babel-cli) + es6 javascript 部署到 heroku/production 时遇到了很多麻烦。我的应用是一个用 es6 风格的 javascript 编写的简单 express 和节点服务器。
我正在使用“babel-cli”(通过 package.json 安装)和 package.json 中的 postinstall 脚本将我的 es6 javascript 预编译为“build" 文件夹,然后再启动服务器。
奇怪的是,所有的东西都可以用 babel-cli 顺利编译,用于开发,但不能用于生产。
在部署到生产环境/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.
任何帮助将不胜感激!设置服务器的东西是我最大的克星! :(
【问题讨论】:
标签: javascript node.js heroku ecmascript-6 babeljs