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
JAMstackってなに?もやもやするのでJAMstackについて調べてみた。
テクノロジー
プログラミング
公開日: 2021年03月08日
最終更新日: 2021年03月08日
JAMstackってなに?もやもやするのでJAMstackについて調べてみた。
  • # GatsbyJS
  • # JAMStack
  • # JavaScript
  • # Netlify
オンスタ運営

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
[JavaScript_中級者への道]  プロトタイプについて – [2] クラスを定義して呼び出す
プログラミング
公開日: 2020年02月18日
最終更新日: 2022年01月17日
[JavaScript_中級者への道] プロトタイプについて – [2] クラスを定義して呼び出す
  • # ES6
  • # JavaScript
  • # クラス
  • # プロトタイプ
オンスタ運営

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
[JavaScript_中級者への道] Js_Promiseを使ってみる
プログラミング
公開日: 2020年02月21日
最終更新日: 2022年01月17日
[JavaScript_中級者への道] Js_Promiseを使ってみる
  • # ES6
  • # JavaScript
  • # Promise
  • # コールバック
オンスタ運営

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
[JavaScript_中級者への道] JavaScript開発環境について – npm について
マークアップ
公開日: 2020年03月19日
最終更新日: 2022年01月17日
[JavaScript_中級者への道] JavaScript開発環境について – npm について
  • # Bower
  • # Grunt
  • # node.js
  • # npm
  • # タスクランナー
  • # 歴史
  • # 開発環境
オンスタ運営

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】CSSレイアウト組まとめ(中編)
テクノロジー
マークアップ
公開日: 2017年10月06日
最終更新日: 2017年10月06日
【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
ホームページを「おしゃれ」に!エフェクトを導入する方法<ホームページ制作初心者向け>
Webデザイン
テクノロジー
ホームぺージ更新
マークアップ
設計
公開日: 2018年02月16日
最終更新日: 2018年02月16日
ホームページを「おしゃれ」に!エフェクトを導入する方法<ホームページ制作初心者向け>
オンスタ運営

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
WEB用に使われる画像形式の基礎と特徴
Webデザイン
マークアップ
公開日: 2019年04月19日
最終更新日: 2022年01月17日
WEB用に使われる画像形式の基礎と特徴
オンスタ運営

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
JS初心者必見!JavaScriptの勉強ができるWEBサービス紹介【タイプ別】
プログラミング
マークアップ
公開日: 2018年12月28日
最終更新日: 2022年01月17日
JS初心者必見!JavaScriptの勉強ができるWEBサービス紹介【タイプ別】
オンスタ運営
全記事一覧

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

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

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

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