Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Running into "couldn't infer parser" error using vue-cli

I'm getting an error repeatedly when trying to build a new webpack project using vue-cli. I'm following along with the docs on the latest build (3.0.0-beta.11), also tried with an earlier version, which wasn't beta.

When I run yarn serve it attempts to start the dev server and build the project but fails here:

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

About my setup

  • Mac OS
  • I'm running node v8.5.0
  • packages are installed with yarn

The Things I've Attempted

  • Different versions of vue-cli to generate a new project. The projects generate and install modules.
  • Tried removing the prettier module, but the error still seems to come up.
  • Tried reinstalling all modules.

What else might I try to get past this error?

like image 280
counterbeing Avatar asked May 27 '18 19:05

counterbeing


2 Answers

Removing the current node_modules folder from the project, adding "prettier": "^1.12.1" to package.json and running npm install solved the issue.

Another option is to run npm install [email protected] without removeing the node_modules folder before

Update:

For some users, verion 1.12.1 did not work

@Kivin proposed another solution that can be found here: vue webpack template missing parser

like image 51
lsxliron Avatar answered Sep 20 '22 12:09

lsxliron


Known issue and it will be fixed in the next version of vue-cli

In prettier 1.13.0, default parser was removed with a minor version(used to be babylon)

Issue: https://github.com/vuejs/component-compiler-utils/issues/14

Issue at prettier repo: https://github.com/prettier/prettier/issues/4567

Sorry, we committed the age-old semver sin- we knew this was a breaking change, but because it would only affect a subset of our users, we didn't bump the major version, because we didn't want to create friction for our users to upgrade.

To get the old behavior, add parser: "babylon". You may also want to lock prettier to a specific version in your package.json.

like image 21
Frondor Avatar answered Sep 20 '22 12:09

Frondor