vue webpack模板缺少解析器

时间:2018-05-27 19:54:14

标签: webpack vue.js prettier

我只是使用webpack模板设置一个vue项目,如下所示:http://vuejs-templates.github.io/webpack/

但是在运行npm run dev之后只是为了测试模板是否正常工作,我收到了这个错误:

Failed to compile with 2 errors                                                                                                                                                                                                                                                           21:49:02
 error  in ./src/App.vue

Module build failed: Error: No parser and no file path given, couldn't infer a parser.
    at normalize (path\node_modules\prettier\index.js:7051:13)
    at formatWithCursor (path\node_modules\prettier\index.js:10370:12)
    at path\node_modules\prettier\index.js:31115:15
    at Object.format (path\node_modules\prettier\index.js:31134:12)
    at Object.module.exports (path\node_modules\vue-loader\lib\template-compiler\index.js:80:23)

 @ ./src/App.vue 11:0-354
 @ ./src/main.js
 @ multi (webpack)-dev-server/client?http://localhost:8080 webpack/hot/dev-server ./src/main.js

 error  in ./src/components/HelloWorld.vue

Module build failed: Error: No parser and no file path given, couldn't infer a parser.
    at normalize (path\node_modules\prettier\index.js:7051:13)
    at formatWithCursor (path\node_modules\prettier\index.js:10370:12)
    at path\node_modules\prettier\index.js:31115:15
    at Object.format (path\node_modules\prettier\index.js:31134:12)
    at Object.module.exports (path\node_modules\vue-loader\lib\template-compiler\index.js:80:23)

我做错了什么?

7 个答案:

答案 0 :(得分:83)

Prettier在今天发生的1.13.0更新中导致了此回归。降级到以前的版本以修复此错误:

  

npm install --save-dev prettier@1.12.0

     

npm run dev

这应该可以解决问题。

答案 1 :(得分:7)

如果您正在使用Yarn,请将其添加到package.json以强制@vue/component-compiler-utils使用正确的版本:

"resolutions": {
  "@vue/component-compiler-utils/prettier": "1.12.1"
}

然后重新安装。

reference

答案 2 :(得分:6)

它在vue-loader@13.7.2和vue-loader@14.2.3中修复。所以只需升级。

答案 3 :(得分:2)

如果您使用的是laravel-mix,那么我就会修复它:

删除。\ node_modules,删除。\ yarn.lock,然后将以下内容添加到。\ package.json

"dependencies": {
    ...
    "prettier": "1.12.1",
    "vue-loader": "13.7.0"
    ...
},
"resolutions": {
    "laravel-mix/vue-loader": "13.7.0",
    "vue-loader/prettier": "1.12.1"
}

运行纱线,一切都应该正常工作。

答案 4 :(得分:1)

由于vue-cli在此处使用更漂亮的API接口并对选项进行了硬编码,因此在项目@vue/component-compiler-utils中添加了更漂亮的依赖关系。

您可以尝试npm i prettier@~1.12.0强制使用更漂亮的版本。

顺便说一下有人用pull request做了修复

答案 5 :(得分:0)

我在使用纱线时遇到了同样的错误,但是尝试了npm inpm run dev而且它有效。

yarn v v1.5.1 npm -v 5.6.0 node -v v10.0.0

答案 6 :(得分:0)

我在Docker上使用Nuxt / Vue。我在docker build中遇到了同样的错误。

在以下命令

之后,它不起作用
rm -rf node_modules 
npm install --save-dev prettier@1.12.0
npm run dev

所以我编辑了这样的Dockerfile并且它有效。

FROM node:8.11

RUN mkdir -p /app
COPY . /app
WORKDIR /app

RUN npm install && npm cache verify
RUN npm install --save-dev prettier@1.12.0
RUN npm run build

EXPOSE 3000

CMD ["npm", "run", "express"]