LoginSignup
26
10

More than 5 years have passed since last update.

nuxtで"No parser and no filepath given..."というエラーが出る件

Last updated at Posted at 2018-06-02

nuxtでコンパイル時に"No parser and no filepath given..."というメッセージのエラーが出てくるけど原因や対処方法がどこにも見つからなかったので記録しておきます。

エラー内容

nuxt実行時に以下のエラーが複数回表示される(昔は出なかった気がした)

No parser and no filepath given, using 'babylon' the parser now but this will throw an error in the future. Please specify a parser or a filepath so one can be inferred.

特にエラー(警告)が表示されているだけで、実行に問題はなさそうだが気になる。

確認したパッケージバージョン

nuxt 1.4.0
vue-loader 13.7.0
prettier 1.13.4

原因

調べてみるとvue-loaderがtemplate-compilerを実行する時にprettierというパッケージを呼びに行ってそこでエラーが出ている模様

prettierを見に行くと1.13.0以降はdefault値がbabylonからundefinedに変更になっている

core-options.js
  ....
  parser: {
    since: "0.0.10",
    category: CATEGORY_GLOBAL,
    type: "choice",
    default: [
      { since: "0.0.10", value: "babylon" },
      { since: "1.13.0", value: undefined }
    ],
    .....
  }

修正が入ったのがこれを書いている9日前くらい(2018/5/24前後?)の変更のようだ。

対処方法

ということでそのうち対応されると思うけど、prettierを1.12などにダウンレードするか、暫定的に以下のようにparserを指定するとエラーは消える。

node-modules/vue-loader/lib/template-compiler/index.js:80

index.js
...
code = prettier.format(code, { semi: false, parser:'babylon' })
...

わざわざ選択できるようになったparserを固定値にしてしまうのが良いかは議論があるかと思いますし、インストールしたパッケージを上書き修正するわけにはいかないですのでforkするしか無いですが。

pull-requestするならちゃんとオプション値を渡せるようにしたほうがいいと思うしな...。

26
10
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
10