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
yarn
でインストールされますvue-cli
のさまざまなバージョン。プロジェクトはモジュールを生成してインストールします。prettier
モジュールを削除しようとしましたが、それでもエラーが発生するようです。このエラーを乗り越えるために他に何を試みることができますか?
プロジェクトから現在のnode_modules
フォルダーを削除し、"prettier": "^1.12.1"
をpackage.json
に追加し、npm install
を実行すると問題が解決しました。
もう1つのオプションは、前にnpm install [email protected]
フォルダーを削除せずにnode_modules
を実行することです。
更新:
一部のユーザーでは、バージョン1.12.1が機能しませんでした
@Kivinは、ここで見つけることができる別のソリューションを提案しました: vue webpackテンプレートにパーサーがありません
既知の問題であり、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内の特定のバージョンにきれいにロックすることもできます。
ランニング npm install [email protected]
私のためにそれを解決しました。 lsxlironに感謝します。
今、私はすべてのオプションを試しました..よりきれいにダウンロードしてアップグレードします...しかし、どれもうまくいきませんでした。何が起こったのかを注意深く研究するまで。どうやら、よりきれいなチームは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' })
}
_
それでおしまい!その後、問題が修正されると、すべてがロールバックされ、問題はありません。
これを試してください...検索の数え切れないほどの分を節約できます...
さまざまな反響ですでに指摘されているように、よりきれいなパッケージのバージョンをロールバックする必要があるかもしれません。
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"