LoginSignup
4
0

More than 3 years have passed since last update.

VuePress で Vuetify を使う

Last updated at Posted at 2019-07-22

やりたいこと

VuePress で Vuetify を使いたい。ただし、全体にテーマを適用するのではなく、部分的に使いたい。

ぶつかった症状

yarn vuepress dev なら問題なく動作するのですが yarn vuepress build をした時に、上のポイントを抑えていないとうまく動きませんでした。

まだキッチリ原因を切り分けられていないので 自分固有の症状かもしれません。また、症状を完全に回復させておらず a タグのスタイルが漏れてしまっています。ただ、同じ内容で引っかかっている方がいらっしゃればと思い記載いたします。

バージョン

  • vuepress@0.14.11
  • vuetify@1.5.16

参考にしたサイト

以下のサイトを参考にさせていただきました。ただ、それでもいくらかハマったところがありました。

対策

SFC, シングルファイルコンポーネントを書く時に以下の3点に留意します。

  1. scoped ではなくクラスを使う
  2. less を使う
  3. 相対 import を使う
<template>
  <!-- 1. scoped は使わずクラスを使う -->
  <v-app class="vuetify-styles">
    ...
  </v-app>
</template>


<style lang="less">
  /* 2. less を使う */
  .vuetify-styles{
    /* 
       3. 絶対 import ではなく 相対 import を使う
       @import (less) '/node_modules/vuetify/dist/vuetify.min.css';
     */
    @import (less) '../../../node_modules/vuetify/dist/vuetify.min.css';
  }
</style>

原因

詳しいことが、全くわかっていません。原因があるなら yarn vuepress build でも問題が起こっていいはずですが、なぜか yarn vuepress dev では安定して動作してくれます。バグが起こっている背景はリンク先のコメントからなんとなく雰囲気だけ。

その1

そもそも Vuetify が global にスタイルを適用してしまう様子。

dearaw - Css conflict
@mgh87 Yes that's normal, Vuetify has global styles in it and will register them in <head> I'll try to create a Vuepress + Vuetify theme

scoped を外すと動作するのは自力で気づきました... orz

その2

Webpack もなんか問題を抱えている様子。

It would seem the problems comes from webpack rather than stylus itself or vuetify itself.
[Bug Report] stylus block level import not working - GitHub

less を使えばなんとか動作するよ、というのは以下のコメントで知りました。

I've used less here and it works for me.
[Bug Report] stylus block level import not working - GitHub

less の追加

yarn add -D less less-loader

scoped のつけ忘れ

.vuepress/components 配下で定義していた SFC が複数あったのですが、そのうちの1つに style に scoped をつけ忘れていたものがあって、それともこんがらがって、混沌に拍車が掛かっていました... orz

4
0
0

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
4
0