create nuxt-appでアプリケーションをテンプレートから作成時にprettierを使うと謎のエラーが出て実行できない症状に悩まされたので、調べてみました。
環境
"nuxt": "^2.0.0",
"eslint": "^5.0.1",
"prettier": "1.14.3",
エラーメッセージ
初期テンプレートを利用しているのに、
yarn create nuxt-app mytest
...
? Use eslint yes
? Use prettier yes
...
yarn run build
yarn run dev
こうなる
ERROR Failed to compile with 1 errors 17:31:46
error in ./layouts/default.vue
Module Error (from ./node_modules/eslint-loader/index.js):
.../mytest/layouts/default.vue
89:1 error Delete `··` prettier/prettier
90:3 error Delete `··` prettier/prettier
91:1 error Replace `······` with `····` prettier/prettier
92:1 error Delete `··` prettier/prettier
93:1 error Replace `········` with `······` prettier/prettier
94:1 error Delete `··` prettier/prettier
95:1 error Replace `········` with `······` prettier/prettier
96:1 error Delete `··` prettier/prettier
97:1 error Replace `··········` with `········` prettier/prettier
98:7 error Delete `··` prettier/prettier
99:1 error Delete `··` prettier/prettier
100:7 error Delete `··` prettier/prettier
101:1 error Delete `··` prettier/prettier
102:7 error Delete `··` prettier/prettier
103:5 error Delete `··` prettier/prettier
104:1 error Replace `····` with `··` prettier/prettier
105:1 error Delete `··` prettier/prettier
✖ 17 problems (17 errors, 0 warnings)
17 errors and 0 warnings potentially fixable with the `--fix` option.
@ ./.nuxt/App.js 4:0-47 6:14-23
@ ./.nuxt/index.js
@ ./.nuxt/client.js
@ multi webpack-hot-middleware/client?name=client&reload=true&timeout=30000&path=/__webpack_hmr ./.nuxt/client.js
READY Listening on http://localhost:3000
直すポイントも謎...。これでeslintとprettierをnoにしてごまかしていたが、気になるので調べて見た。
##対応方法
yarn run lint --fix
を実行する
yarn run lint --fix
yarn run v1.3.2
warning ../package.json: No license field
$ eslint --ext .js,.vue --ignore-path .gitignore . --fix
✨ Done in 1.93s.
これだけなのにかなり悩みました。
yarn run lint
で再度チェックできます。
diffをとってみた
どうやらインデントが一段ずれているようです。Delete `··`
とあるのはタブの事だったのですね。
diff --git a/layouts/default.vue b/layouts/default.vue
index 29dc068..14779bc 100644
--- a/layouts/default.vue
+++ b/layouts/default.vue
@@ -86,21 +86,21 @@
</template>
<script>
- export default {
- data() {
- return {
- clipped: false,
- drawer: true,
- fixed: false,
- items: [
- { icon: 'apps', title: 'Welcome', to: '/' },
- { icon: 'bubble_chart', title: 'Inspire', to: '/inspire' }
- ],
- miniVariant: false,
- right: true,
- rightDrawer: false,
- title: 'Vuetify.js'
- }
+export default {
+ data() {
+ return {
+ clipped: false,
+ drawer: true,
+ fixed: false,
+ items: [
+ { icon: 'apps', title: 'Welcome', to: '/' },
+ { icon: 'bubble_chart', title: 'Inspire', to: '/inspire' }
+ ],
+ miniVariant: false,
+ right: true,
+ rightDrawer: false,
+ title: 'Vuetify.js'
}
}
+}
</script>