web-dev-qa-db-ja.com

vue-cliを使用して「パーサーを推測できませんでした」エラーが発生しました

vue-cliを使用して新しいwebpackプロジェクトをビルドしようとすると、繰り返しエラーが発生します。最新のビルド(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

私のセットアップについて

  • マックOS
  • ノードv8.5.0を実行しています
  • パッケージはyarnでインストールされます

私が試みたこと

  • 新しいプロジェクトを生成するためのvue-cliのさまざまなバージョン。プロジェクトはモジュールを生成してインストールします。
  • prettierモジュールを削除しようとしましたが、それでもエラーが発生するようです。
  • すべてのモジュールを再インストールしてみました。

このエラーを乗り越えるために他に何を試みることができますか?

9
counterbeing

プロジェクトから現在のnode_modulesフォルダーを削除し、"prettier": "^1.12.1"package.jsonに追加し、npm installを実行すると問題が解決しました。

もう1つのオプションは、前にnpm install [email protected]フォルダーを削除せずにnode_modulesを実行することです。

更新:

一部のユーザーでは、バージョン1.12.1が機能しませんでした

@Kivinは、ここで見つけることができる別のソリューションを提案しました: vue webpackテンプレートにパーサーがありません

7
lsxliron

既知の問題であり、vue-cliの次のバージョンでは 修正済み になります

よりきれいな1.13.0では、デフォルトのパーサーはマイナーバージョン(以前はバビロン)で削除されました

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

よりきれいなリポジトリでの問題: https://github.com/prettier/prettier/issues/4567

申し訳ありませんが、私たちは昔からのsemverの罪を犯しました-これは重大な変更であることがわかっていましたが、ユーザーのサブセットにのみ影響するため、メジャーバージョンをバンプしませんでした。アップグレードするユーザー。

古い動作を取得するには、parser: "babylon"を追加します。 package.json内の特定のバージョンにきれいにロックすることもできます。

6
Frondor

ランニング npm install [email protected]私のためにそれを解決しました。 lsxlironに感謝します。

4
A.C

今、私はすべてのオプションを試しました..よりきれいにダウンロードしてアップグレードします...しかし、どれもうまくいきませんでした。何が起こったのかを注意深く研究するまで。どうやら、よりきれいなチームはbabylonであったデフォルトのパーサーを削除し、そうすることで...インターネットを壊しました。

冗談だ。

発行レポ

彼らによると、最も簡単な解決策は、パーサーを追加し直すことです。これはVueチームによって取り上げられ、最新の修正リリースで出荷される予定です。Vueローダー/ヤーンを使用している場合は、わざわざすべての提案を試してみました...私はそれらをすべて試しました。私にとってそれを修正したのは..._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' })
}
_

それでおしまい!その後、問題が修正されると、すべてがロールバックされ、問題はありません。

これを試してください...検索の数え切れないほどの分を節約できます...

3
Wale

さまざまな反響ですでに指摘されているように、よりきれいなパッケージのバージョンをロールバックする必要があるかもしれません。

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"
1
Srini