1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

vueファイル内でscssを使う(シンタックスハイライトも含め)

Posted at

vueでWEBサイトを作っているとき、せっかくだからSCSSで書きたくなりました。

vueテンプレート内でscssを使う

app.vue
<template>
~
</template>
<script>
~
</script>
<style lang="scss">

</style>

と、lang="scss"をつけてやる。
あと、sass-loaderとnode-sassをインストールしてやるだけでした。

npm install node-sass --save
npm install sass-loader --save

Vimのシンタックスハイライトを設定

自分vimのposva/vim-vueプラグインを入れているのですが、デフォルトのCSSだとちゃんときくのに、lang設定をしたとたん、シンタックスハイライトがきかなくなってしまいました。
こちらを参考に直しました。
https://github.com/posva/vim-vue/issues/68

 vi ~/.vim/bundle/vim-vue/syntax/vue.vim
※プラグインが入っているディレクトリを探してください
vue.vim
let s:languages = [
      \ {'name': 'less',       'tag': 'style'},
      \ {'name': 'pug',        'tag': 'template', 'attr_pattern': s:attr('lang', '\%(pug\|jade\)')},
      \ {'name': 'slm',        'tag': 'template'},
      \ {'name': 'handlebars', 'tag': 'template'},
      \ {'name': 'haml',       'tag': 'template'},
      \ {'name': 'typescript', 'tag': 'script', 'attr_pattern': '\%(lang=\("\|''\)[^\1]*\(ts\|typescript\)[^\1]*\1\|ts\)'},
      \ {'name': 'coffee',     'tag': 'script'},
      \ {'name': 'stylus',     'tag': 'style'},
      \ {'name': 'sass',       'tag': 'style'},
      \ {'name': 'scss',       'tag': 'style'},
      \ ]

一番上の行にあるlessというのを、一番下に移動します。

vue.vim
let s:languages = [
      \ {'name': 'pug',        'tag': 'template', 'attr_pattern': s:attr('lang', '\%(pug\|jade\)')},
      \ {'name': 'slm',        'tag': 'template'},
      \ {'name': 'handlebars', 'tag': 'template'},
      \ {'name': 'haml',       'tag': 'template'},
      \ {'name': 'typescript', 'tag': 'script', 'attr_pattern': '\%(lang=\("\|''\)[^\1]*\(ts\|typescript\)[^\1]*\1\|ts\)'},
      \ {'name': 'coffee',     'tag': 'script'},
      \ {'name': 'stylus',     'tag': 'style'},
      \ {'name': 'sass',       'tag': 'style'},
      \ {'name': 'scss',       'tag': 'style'},
      \ {'name': 'less',       'tag': 'style'},
      \ ]

自分の場合はこれで直りました。
ただ、先ほど書いたページだと、逆にlessを一番上に持っていくことで直ったとも書いてあるので、どちらも試してみてください。

以上、vueファイル内でscssをシンタックスハイライトありで使う場合の設定でした。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?