#javascript #node.js #ecmascript-6 #babeljs
#javascript #node.js #ecmascript-6 #babeljs
Вопрос:
У меня есть следующий сегмент кода:
let baseUrl = '/';
let url = req.originalUrl || '/';
let config: ExpressEngineConfig = {
directives: [ App ],
когда я пытаюсь скомпилировать этот файл с помощью babel, я получаю сообщение об ошибке
SyntaxError: server.js: Unexpected token, expected ; (37:12)
Ошибка указывает на :
символ в качестве неожиданного токена. Я что-то упускаю? Вот мой .babelrc
. Спасибо за любую помощь
{
"presets": ["es2015"]
}
Ответ №1:
У вас есть аннотация типа в let config: ExpressEngineConfig
, которая не является частью JS (es2015 или иным образом).
Если вы используете аннотации типа Flow, вам необходимо включить плагин, как описано в документах Babel:
{ "plugins": ["syntax-flow"] }
Если вы используете Typescript, вам нужно будет скомпилировать его в JS перед запуском Babel.
Комментарии:
1. Код очень похож на код, представленный здесь ; Интересно, не является ли аннотация результатом слишком большого вырезания и вставки из исходного TS-источника (учитывая, что предполагается, что она должна выполняться Node напрямую).
2. @robertklep да, это то место, откуда я его получил. Просто пытаюсь привести это в какую-то форму, которую я действительно могу запустить
3. @SyntacticFructose просто удалите аннотацию, и все будет хорошо. Или включите Flow и позвольте it / Babel удалить их (я не уверен, кто это делает).
4. @SyntacticFructose это, вероятно, сработает, если вы удалите
: ExpressEngineConfig
(так оно и становитсяlet config = { ... }
).