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.jsでグローバルなCSSを読み込む

Last updated at Posted at 2022-02-20

Vue.jsでグローバルなCSSを読み込む方法です。
Vue.jsのバージョンは 3.2.31 で確認しています。

main.tsファイルから読み込む

まずはグローバルに読み込みたいCSSファイルを用意します。

src/assets/style/common.css
/* 下記は例です */
.hoge {
  background-color: red;
}

main.ts ファイルでインポートします。

src/main.ts
import { createApp } from 'vue';
import App from './App.vue';
import router from './router';
import store from './store';
import './assets/style/common.css'; // ここを追加

createApp(App).use(store).use(router).mount('#app');

これでコンポーネント内で .hoge クラスが使用可能になります。

sass-loaderから読み込む

sass-loaderでSCSSを使用する場合は、additionalData を設定することでグローバルなSCSSを読み込むことができます。

sass-loaderのv11.0.0以降はwebpackのバージョン5以上しか対応していないようです。
まずはwebpackのバージョンを確認して、バージョン5以下の場合はsass-loaderのv10をインストールしましょう。

# webpackのバージョンを確認
npm list webpack
# sass-loaderのv10をインストール
npm install --save-dev sass sass-loader@10

グローバルに読み込みたいSCSSファイルを用意します。

src/assets/scss/common.scss
/* 下記は例です */
.hoge {
  background-color: red;
}

プロジェクト直下の vue.config.js ファイルに下記設定を追加します。
ファイルがない場合は作成します。

vue.config.js
module.exports = {
  css: {
    loaderOptions: {
      scss: {
        additionalData:
          `@import "@/assets/scss/common.scss";`
      }
    },
  },
};

これでコンポーネント内で .hoge クラスが使用可能になります。

ちなみに、複数ファイルを読み込みたい場合は下記のようにします。

vue.config.js
module.exports = {
  css: {
    loaderOptions: {
      scss: {
        additionalData:
          `@import "@/assets/scss/common.scss"; \
          @import "@/assets/scss/variables.scss"; \
          @import "@/assets/scss/mixin.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?