40

我只是使用 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)

我究竟做错了什么?

4

7 回答 7

83

Prettier1.13.0在他们今天发生的更新中导致了这种回归。降级到以前的版本以修复此错误:

npm install --save-dev prettier@1.12.0

npm 运行开发

这应该够了吧。

于 2018-05-27T20:44:43.800 回答
8

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

于 2018-05-28T15:49:10.037 回答
7

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

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

然后进行全新安装。

参考

于 2018-05-28T02:00:35.760 回答
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"
}

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

于 2018-05-28T10:34:43.323 回答
1

由于vue-cli这里使用了更漂亮的 API 接口并对选项进行了硬编码,并且在 project 中添加了更漂亮的依赖项@vue/component-compiler-utils

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

顺便说一句,有人对修复提出了拉取请求

于 2018-05-27T23:45:22.687 回答
0

我在使用纱线时遇到了同样的错误,但尝试了一下,npm i结果npm run dev却奏效了。

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

于 2018-05-28T01:48:52.970 回答
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"]
于 2018-05-28T05:49:22.380 回答