MENUCLOSE
twitter ツイッターfeedlyRSS

オンスタでは、オンラインで学習するために役立つコンテンツを掲載しています。そのほか、UdemyをはじめとしたEラーニングサービスの紹介も行っています。

オンスタ | オンラインで学習するための近道になるサイト
【Vue.js】初心者のワタシがつまづいた。Sassの共通変数をグローバルに読み込む方法

【Vue.js】初心者のワタシがつまづいた。Sassの共通変数をグローバルに読み込む方法

公開日:2020年01月16日
最終更新日:2022年01月17日
オンスタ運営
プログラミング
マークアップ
ホーム > 全記事一覧 > 制作 > エンジニア > マークアップ > 【Vue.js】初心者のワタシがつまづいた。Sassの共通変数をグローバルに読み込む方法

Warning: Undefined variable $_cat_enginieer_flag in /home/growgroup/online-study.jp/public_html/wp-content/themes/online-study-wp/views/object/components/related-posts-inline.php on line 37
このエントリーをはてなブックマークに追加
【Vue.js】初心者のワタシがつまづいた。Sassの共通変数をグローバルに読み込む方法
【PR】Udemyならスマホでもタブレットでも、いつでも気軽に学べます。
いまさらながら Vue.js 面白い!
一人でほそぼそと Vue.js を学んでいる小野です。
今日は Vue.js を利用する際につまづいた Sass のグローバルな読み込みについて備忘録がてら報告します。

vue-cli 3.x でグローバルな Sass を利用する


Vue.js で Sass を利用する際に、サイト内で共通で使用する変数や Mixin を毎回インポートするのは面倒ですよね。

例えば以下のコードで利用する $color-primary 変数を他のコンポーネントでも使いたい!
というケースを考えてみます。
<template>
  <div class="c-component"> テキストテキストテキストテキストテキスト</div>
</template>

<style scoped lang="scss">
$color-primary: #aabbcc;
.c-component {
 background: $color-primary; 
}
</style>
共通する Sass 変数や Mixin を読み込みしたいときは変数用の Sass ファイルを作成してインポートする方法があります。
<style lang="scss">
@import "./scss/_variables.scss";
.c-component {
  background: $color-primary;
}
</style>
でもたくさんコンポーネントがあったらこれはしんどいですね。
Vue.js では package.json と同じフォルダに vue.config.js を作成することで、グローバルな Sass のインポートが可能です。
module.exports = {
  css: {
    loaderOptions: {
      sass: {
        prependData: `@import "@/scss/_variables.scss";`
      }
    }
  }
};

インターネット上の記事では prependData の部分を単に data として紹介されていることが多いのですが、data だと以下のようなエラーが出てコンパイルできませんでした。

Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
ValidationError: Invalid options object. Sass Loader has been initialised using an options object that does
 not match the API schema.
 - options has an unknown property 'data'. These properties are valid:
   object { implementation?, sassOptions?, prependData?, sourceMap?, webpackImporter? }

公式 sass-loader のドキュメントを見ると prependData が正解っぽいです。めっちゃ悩んだ。。。



一連の流れをまとめてみる


まずコマンドラインでプロジェクトを作成する。
npm install -g vue-cli
vue create my-project
cd my-project

次に SassLoader をインストール

npm install --save-dev node-sass sass-loader
次に vue.config.js を作成する。
vi vue.config.js
vue.config.js にグローバルで利用する SCSS を指定する

module.exports = {
  css: {
    loaderOptions: {
      sass: {
        prependData: `
          @import "@/scss/_variables.scss";
        `
      }
    }
  }
};
これで変数が定義されたSassファイルが各コンポーネントから利用できる。やった!

まとめ

Vue.js面白い!
vue-cliがあるとなお面白い!
みんなも触ってみよう!

【PR】Udemyならスマホでもタブレットでも、いつでも気軽に学べます。

Udemyを実際に体験した方の感想記事もぜひご覧ください♪

関連コンテンツ


Warning: Trying to access array offset on value of type bool in /home/growgroup/online-study.jp/public_html/wp-content/plugins/wp-word-count/public/class-wpwc-public.php on line 123
現場で働いているからわかる!人気プログラミング言語を徹底比較
プログラミング
公開日: 2019年07月10日
最終更新日: 2019年07月10日
現場で働いているからわかる!人気プログラミング言語を徹底比較
  • # プログラミング言語
  • # 比較
オンスタ運営

Warning: Trying to access array offset on value of type bool in /home/growgroup/online-study.jp/public_html/wp-content/plugins/wp-word-count/public/class-wpwc-public.php on line 123
コーダーはCSS設計に夢を見る
テクノロジー
マークアップ
公開日: 2017年02月10日
最終更新日: 2022年01月17日
コーダーはCSS設計に夢を見る
オンスタ運営

Warning: Trying to access array offset on value of type bool in /home/growgroup/online-study.jp/public_html/wp-content/plugins/wp-word-count/public/class-wpwc-public.php on line 123
Sketchを使ったイラストレーター(illustrator)から爆速でコーディングする方法
マークアップ
公開日: 2017年07月29日
最終更新日: 2017年07月29日
Sketchを使ったイラストレーター(illustrator)から爆速でコーディングする方法
オンスタ運営

Warning: Trying to access array offset on value of type bool in /home/growgroup/online-study.jp/public_html/wp-content/plugins/wp-word-count/public/class-wpwc-public.php on line 123
新年早々スマホコーディングの「html/css」についてもう一度おさらいしてみる。
マークアップ
公開日: 2017年01月18日
最終更新日: 2017年01月18日
新年早々スマホコーディングの「html/css」についてもう一度おさらいしてみる。
オンスタ運営

Warning: Trying to access array offset on value of type bool in /home/growgroup/online-study.jp/public_html/wp-content/plugins/wp-word-count/public/class-wpwc-public.php on line 123
夏だしオバケ怖いってことでPhantomJSを使ってスクレイピング試してみた
プログラミング
公開日: 2017年08月04日
最終更新日: 2017年08月04日
夏だしオバケ怖いってことでPhantomJSを使ってスクレイピング試してみた
オンスタ運営

Warning: Trying to access array offset on value of type bool in /home/growgroup/online-study.jp/public_html/wp-content/plugins/wp-word-count/public/class-wpwc-public.php on line 123
コピペ実装!CSSだけで作れるお洒落で使いやすいボタン◉サンプルコード12選
Webデザイン
マークアップ
公開日: 2018年03月02日
最終更新日: 2018年03月02日
コピペ実装!CSSだけで作れるお洒落で使いやすいボタン◉サンプルコード12選
オンスタ運営

Warning: Trying to access array offset on value of type bool in /home/growgroup/online-study.jp/public_html/wp-content/plugins/wp-word-count/public/class-wpwc-public.php on line 123
【CSS】CSSレイアウト組まとめ(前編)
マークアップ
公開日: 2018年09月08日
最終更新日: 2022年01月17日
【CSS】CSSレイアウト組まとめ(前編)
オンスタ運営

Warning: Trying to access array offset on value of type bool in /home/growgroup/online-study.jp/public_html/wp-content/plugins/wp-word-count/public/class-wpwc-public.php on line 123
【第2弾】コピペ実装!CSSだけで作れるお洒落で使いやすいボタン◉サンプルコード7選
Webデザイン
テクノロジー
マークアップ
公開日: 2020年08月07日
最終更新日: 2020年08月07日
【第2弾】コピペ実装!CSSだけで作れるお洒落で使いやすいボタン◉サンプルコード7選
オンスタ運営

Warning: Trying to access array offset on value of type bool in /home/growgroup/online-study.jp/public_html/wp-content/plugins/wp-word-count/public/class-wpwc-public.php on line 123
制作者への影響を探る!Gutenberg (グーテンベルグ) – WordPress 5.0 搭載予定の新エディタ
テクノロジー
プログラミング
公開日: 2017年11月29日
最終更新日: 2017年11月29日
制作者への影響を探る!Gutenberg (グーテンベルグ) – WordPress 5.0 搭載予定の新エディタ
オンスタ運営

Warning: Trying to access array offset on value of type bool in /home/growgroup/online-study.jp/public_html/wp-content/plugins/wp-word-count/public/class-wpwc-public.php on line 123
一歩踏み込んだマークダウン(Markdown)の紹介とマークダウン記法を学ぶ
マークアップ
公開日: 2019年10月08日
最終更新日: 2022年01月17日
一歩踏み込んだマークダウン(Markdown)の紹介とマークダウン記法を学ぶ
  • # markdown
  • # マークダウン
  • # 効率化
オンスタ運営
全記事一覧

web制作者にオススメのオンライン学習サイト「Udemy」

世界最大級のコースがラインナップ!電子書籍サイト「Udemy」

世界最大級のコースがラインナップ!オンライン学習サイト「Udemy」

「Udemy」ではいつでもどんなトピックでも、専門家が教える何千ものコースを用意されており、無料で学べるコースも多数あります。もうちょっと勉強したいな。スキルアップしたいな。と思ったら是非チェックしてみてください。