2016-07-17 1 views
1

У меня много проблем развертывается в Heroku/производства с Бабеля (с использованием столпотворение-кли) + ES6 Javascript. Мое приложение представляет собой простой экспресс-узел и узел, написанный в javascript в стиле es6.Развертывание узла/Экспресс-приложение для Heroku/Производство - Babel/ES6 Ошибка

Я использую «столпотворение-кли» (устанавливается через package.json) и постустановочных скрипт внутри package.json прекомпилировать мой ES6 Javascript в папку «сборки» перед запуском сервера.

Странно, что все готово плавно с babel-cli для разработки, но не для производства.

При развертывании в production/heroku процесс сборки застревает в команде babel в Makefile и выдает сообщение об ошибке.

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" 
    } 
} 

Makefile:

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. 

Любая помощь будет очень признателен! Настройка сервера - моя худшая вражда! :(

ответ

0

Я обычно запускаю babel через weback, поэтому я мог ошибаться здесь (я обычно не использую make-файлы), НО, я бы предположил, что вам нужно будет установить babel-core, чтобы он работал правильно? Похоже, что ошибка связана с тем фактом, что вы только что установили «babel», который не будет работать с v6. Вам необходимо установить его компоненты, которые, как минимум, потребуют «babel-core».

+0

Хм я был надеясь не использовать webpack, но желая попробовать это в надежде решить мою головную боль! – user3295436

+0

@ user3295436 Я бы не сказал, что вам нужно будет использовать webpack для решения этой проблемы, просто упомянув мою точку зрения. Вы можете решить ее просто установка правильного подмножества модулей babel. – thesublimeobject

Смежные вопросы