Я обнаружил, что комбинации nodemon
, babel
и других программ-наблюдателей часто могут странно взаимодействовать. Этот тип «двойного хода» довольно распространен. Они отлично работают, когда настроены просто так, но могут быть хрупкими.
Тем не менее, я не понимаю ваш выбор аргументов командной строки. Я не скажу, что они неверны, но они не соответствуют версиям babel
, которые я установил, или документации, которую я использую. Были заметны изменения в рекомендуемых способах запуска Babel; не вся документация в Интернете актуальна и актуальна с учетом последних подходов.
Поэтому вместо того, чтобы пытаться отлаживать то, что не работает в вашей конфигурации, позвольте мне дать вам конфигурацию, которая работает у меня.
Сначала я установил Babel и его пресеты:
npm install --save-dev babel-cli babel-preset-es2015
Затем скрипт npm в package.json
:
"watch-new": "nodemon src --exec babel --presets es2015 -w src/ --out-dir build/ --source-maps"
(Вы можете использовать другие пресеты. Я использую только большой, ES2015.)
Я вызываю nodemon
для исходного каталога, а не для одного исходного файла, с другой стороны, чтобы babel
не вкладывалось src
в build
; Я предполагаю, что вам нужны отдельные файлы .js
в build
, а не в подкаталоге src
. Я также использую вариант --out-dir
, который я считаю правильным (не -d
).
Наконец, запустите его:
npm run watch-new
Эти пакеты и этот вызов скрипта дают мне правильное поведение с повторным запуском один раз для каждого изменения. Если вы хотите, чтобы node
запускал код сразу после преобразования, а не сохранял его под build/
, вы можете изменить --exec babel
на --exec babel-node
и удалить спецификацию --out-dir
.
И последнее замечание: ваш вопрос помечен для ECMAscript-6. То, что когда-то называлось es6
, теперь более официально называется es2015
. (См., например, этот учебник по названиям новых версий.) У вас больше шансов получить правильную, актуальную документацию, если вы будете искать по новому термину es2015
.
person
Jonathan Eunice
schedule
06.09.2016