rshaibakov
@rshaibakov
Web-разработчик

Как настроить Webpack, что бы работал async/await в .vue файлах?

.babelrc выглядит так:
{
	"presets": ["env"],
	"plugins": [
		"transform-object-rest-spread",
		"transform-runtime"
	]
}

Правила в webpack для файлов с расширением .js и .vue описаны так:
{
	test: /\.js|vue$/,
	enforce: 'pre',
	exclude: /node_modules/,
	loader: 'eslint-loader',
	options: { configFile: './.eslintrc' }
},
{
	test: /\.js$/,
	exclude: /node_modules/,
	loader: 'babel-loader'
},
{
	test: /\.vue$/,
	exclude: /node_modules/,
	use: [
		{
			loader:'vue-loader',
			options: {
				loaders: {
					js: 'babel-loader'
				}
			}
		}
	]
}

Конструкция async/await используется и в .js и в .vue файлах. Но почему то на эту конструкцию в js файлах не ругается сборщик, а в vue файлах выдает ошибку: Parsing error: Unexpected token function
Для теста использую такую функцию:
test: async function () {
    await Promise.resolve();
}

Кто сталкивался, подскажите пожалуйста как решить проблему.
  • Вопрос задан
  • 1199 просмотров
Решения вопроса 1
rshaibakov
@rshaibakov Автор вопроса
Web-разработчик
Спасение утопающего, дело рук самого утопающего:) Решил вопрос.
Ошибку вызывал ESlint. Добавил в .eslintrс версию EcmaScript 8 и конструкция async/await заработала:
"parserOptions": {
	"ecmaVersion": 8,
	"sourceType": "module"
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@iFlashka
{
  test: /\.js$/,
  loader: 'babel-loader',
  exclude: /node_modules/,
  options: {
    presets: ['env'],
    plugins: ['transform-runtime']
  }
}


Честно говоря не помню, но вроде то что во vue файлах тоже транспилировался
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы