При запуске vue-cli возникает ошибка «не могу понять парсер» - PullRequest
0 голосов
/ 27 мая 2018

Я неоднократно получаю сообщение об ошибке при попытке создать новый проект веб-пакета, используя vue-cli.Я следую документам по последней сборке (3.0.0-beta.11), также пробовал с более ранней версией, которая не была бета.

Когда я запускаю yarn serve, он пытаетсязапустите сервер разработки и создайте проект, но он потерпит неудачу:

error  in ./src/App.vue?vue&type=template&id=7ba5bd90

Module build failed: Error: No parser and no file path given, couldn't infer a parser.
    at normalize (/Users/cory/Code/chickadee/my-project/node_modules/prettier/index.js:7051:13)
    at formatWithCursor (/Users/cory/Code/chickadee/my-project/node_modules/prettier/index.js:10370:12)
    at /Users/cory/Code/chickadee/my-project/node_modules/prettier/index.js:31115:15
    at Object.format (/Users/cory/Code/chickadee/my-project/node_modules/prettier/index.js:31134:12)
    at actuallyCompile (/Users/cory/Code/chickadee/my-project/node_modules/@vue/component-compiler-utils/dist/compileTemplate.js:93:29)
    at compileTemplate (/Users/cory/Code/chickadee/my-project/node_modules/@vue/component-compiler-utils/dist/compileTemplate.js:26:16)
    at Object.module.exports (/Users/cory/Code/chickadee/my-project/node_modules/vue-loader/lib/loaders/templateLoader.js:42:20)

 @ ./src/App.vue?vue&type=template&id=7ba5bd90 1:0-194 1:0-194
 @ ./src/App.vue
 @ ./src/main.js
 @ multi (webpack)-dev-server/client/index.js (webpack)/hot/dev-server.js ./src/main.js

О моей настройке

  • Mac OS
  • Я использую узел v8.5.0 *Пакеты 1013 *
  • устанавливаются вместе с yarn

Вещи, которые я пытался

  • Различные версии vue-cli для создания нового проекта.В проектах создаются и устанавливаются модули.
  • Попытка удаления модуля prettier, но ошибка все еще появляется.
  • Попытка переустановки всех модулей.

Что еще я мог бы попытаться обойти эту ошибку?

Ответы [ 5 ]

0 голосов
/ 28 мая 2018

Прямо сейчас я перепробовал все варианты .. загрузка и обновление красивее ... но ни один не работал.Пока я не изучил, что случилось тщательно.Очевидно, более симпатичная команда удалила парсер по умолчанию, который был babylon, и при этом ... сломал интернет.

Шучу.

Выпуск репо

Самым простым решением, по их мнению, было бы просто добавить парсер обратно.Это было принято командой Vue, и ожидается, что оно будет выпущено с последним выпуском исправления.Если вы используете Vue Loader / Yarn, даже не пытайтесь попробовать все предложения ... Я перепробовал их все.Для меня это было исправлено ... перейти к node_modules\vue-loader\lib\template-compiler ... открыть index.js и найти

// prettify render fn if (!isProduction) { code = prettier.format(code, { semi: false}) }

и изменить строки на:

// prettify render fn
if (!isProduction) {
  code = prettier.format(code, { semi: false, parser: 'babylon' })
}

Вот и все!Затем, как только проблема будет решена, все будет просто откатано, и все будет в порядке.

Попробуйте это ... это сэкономит вам бесчисленные минуты поисков ....

0 голосов
/ 28 мая 2018

Как уже указывалось в различных резонансах, вам может потребоваться откатить версию более красивого пакета.

в файле package.json, возможно, вам придется принудительно использовать npm для использования версии (т.е. удалитьшапка ^)

моя выглядит примерно так

"devDependencies": {

"prettier": "1.12.1",
"typescript": "^2.6.1",
"vue": "^2.5.16",
"vue-styleguidist": "^1.4.4",
"vue-webpack-loaders": "^1.0.6",
"webpack": "^3.1.0"
0 голосов
/ 27 мая 2018

Удаление текущей папки node_modules из проекта, добавление "prettier": "^1.12.1" к package.json и запуск npm install решили проблему.

Другой вариант - запустить npm install prettier@1.12.1 без удаления node_modules папка до

Обновление:

Для некоторых пользователей verion 1.12.1 не работал

@ Кивин предложил другое решение, которое можно найти здесь: в шаблоне веб-пакета отсутствует синтаксический анализатор

0 голосов
/ 28 мая 2018

Бег npm install prettier@1.12.1 решил это за меня.Спасибо lsxliron.

0 голосов
/ 27 мая 2018

Известная проблема, и она будет исправлена ​​ в следующей версии vue-cli

В более ранней версии 1.13.0 парсер по умолчанию был удален с минорной версией (используется длябыть Вавилоном)

Выпуск: https://github.com/vuejs/component-compiler-utils/issues/14

Выпуск в более хорошем репо: https://github.com/prettier/prettier/issues/4567

Извините, мы совершили исконный грех- мы знали, что это было серьезное изменение, но поскольку оно затронет только часть наших пользователей, мы не подняли основную версию, потому что не хотели создавать проблемы для наших пользователей при обновлении.

Чтобы получить старое поведение, добавьте parser: "babylon". Вы также можете заблокировать более симпатичную версию в вашем пакете. Json .

...