2016-10-07 4 views
1

У меня есть проект, построенный в WebStorm 2016.2.2, Node.js 6.6.0 и TypeScript 1.8.Babel, похоже, не работает

По некоторым причинам, которые указаны здесь: ES6 import and export are not supported in Node.js, мне нужно использовать Babel.

Я установил Babel и babel-preset-es2015, и я добавил наблюдателя файлов, но я все еще получаю ошибку «неожиданный импорт маркера». Похоже, что Babel не работает.

1) Нужно ли мне предпринять дополнительные действия, чтобы перевести мои файлы js на ES5?

2) В какой версии ES я должен установить «версию языка JavaScript» в настройках WebStorm?

3) Предполагается ли, что Babel должен сгенерировать еще один файл с выходом, как это делает компилятор TypeScript?

Любая помощь будет глубоко оценена!

ответ

2

здесь настройки файла Watcher Бабель, которые работают для меня:

Arguments: $FilePathRelativeToProjectRoot$ --out-dir $ProjectFileDir$/dist --source-maps --presets es2015 
Working directory: $ProjectFileDir$ 
Output Paths to Refresh: $ProjectFileDir$/dist/$FileDirRelativeToProjectRoot$/$FileNameWithoutExtension$.js:$ProjectFileDir$/dist/$FileDirRelativeToProjectRoot$/$FileNameWithoutExtension$.js.map 

компилирует файлы в отдельный каталог, сохраняя оригинальные имена файлов, так что require() работа; Кроме того, WebStorm знает о создаваемых файлах, а файловая система корректно обновляется раз компиляция завершается

1

1) Создайте файл с именем .babelrc в корневой директории проекта, со следующим содержанием:

{ 
    "presets": ["es2015"] 
} 

Это не достаточно, чтобы установить ES6 пресет, вы должны сказать столпотворение использовать эту предустановку , Для справки: https://babeljs.io/docs/plugins/preset-es2015/

2) Попробуйте установить ECMAScript6

+0

Только попробовал, и все еще получал такую ​​же ошибку, к сожалению :-( – Alon

+0

Как вы запускаете babel? Попробуйте в консоли cd в корневой каталог вашего приложения и запустите: 'babel script.js --out -file script-compiled.js' (конечно, вы должны изменить имена файлов) .Это работает? – nagyf

+0

Вы изменили версию JavaScript в Webstorm на ECMAScript 6? Вы должны это сделать – nagyf

1

Не используйте babel-preset-es2015 для Node.js 6. Это преобразует ваши источники в ES5, в то время как у вас уже есть 97% поддержка ES6 изначально, что приводит к серьезным штрафам за производительность. Простое добавление не позволяет также преобразовать модуль.

Используйте предустановку babel-preset-node6 или просто добавьте плагин transform-es2015-modules-commonjs.

+0

Спасибо за совет! – Alon

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