zukucode
主にWEB関連の情報を技術メモとして発信しています。

Vue.js lessで外部のlessファイルをImportする

Vue.js lessを使いwebpackでビルドする.vueファイル(単一ファイルコンポーネント)のstylecssではなくlessで実装して、webpackでビルドをしました。

メインカラーなどの共通情報は外部のlessファイルに記載し、各vueファイルではそのlessファイルをImportして実装するのが効率的です。

.vueファイル内のlessで外部のlessファイルをImportする方法を紹介します。

lessファイルの作成

jsフォルダと同じ階層にlessフォルダを作成します。

  • node_modules
  • public
    • js
    • index.html
  • resources
    • assets
      • js
      • less ←追加
  • package.json
  • webpack.config.json

追加したlessフォルダの中にvariables.lessというファイルを作成します。

variables.less
@red: #ff1122;

vueファイルの編集

通常のlessでの実装と同じように上記で作成したファイルをインポートします。

vueファイルを基準にした相対パスとなります。

App.vue
<style lang="less" scoped>
@import "./../../less/variables";
.message {
  color: @red;
}
</style>

絶対パスで指定する方法

上記のように相対パスで指定すると、vueファイルのフォルダ構成が変わるたびにパスも修正しなければならないため、絶対パスで指定したいところです。

絶対パスで指定する方法をwebpack モジュールのパスを絶対パスで指定する方法で紹介します。


続きを表示

関連記事

  • gulp lessをcssにコンパイルする

    lessファイルをgulpを使ってcssにコンパイルします。gulp-lessとgulp-autoprefixerをインストールします。gulp-autoprefixerはなくても構いませんが、古いブ...


  • Laravelのartisan serveとwebpack-dev-serverを両方使う

    Laravelの開発サーバーとwebpackの開発サーバー(webpack-dev-server)を共存させ、Hot Module Replacement(HMR)を行います。--hotオプションを指...


  • less cssファイルをそのままImportする

    lessでcssファイルをそのままImportする方法を紹介します。cssの@importではなく、lessのコンパイル時にcssを読み込みます。下記のように(inline)を追加します。lessで実...


  • vueコンポーネントでvue-routerのページ制御を行う

    vueコンポーネントの処理でvue-routerのページ制御を行う方法を紹介します。vue-routerでページ遷移するときはrouter-linkのコンポーネントを使うことが多いですが、コンポーネン...


  • vueファイル(単一ファイルコンポーネント)をwebpackでビルド

    vueファイル(単一ファイルコンポーネント)をwebpackでビルドする手順を紹介します。バージョンは、Vue.jsは2.x、webpackは2.xです。わかりやすくするため、空のプロジェクトから出来...


  • Vue.js lessを使いwebpackでビルドする

    .vueファイル(単一ファイルコンポーネント)のstyleをcssではなくlessで実装して、webpackでビルドをします。vue-loaderのオプションにlessのloaderを追加します。


  • vue-routerを導入してSPAを作成する

    Vue.jsのプロジェクトにvue-routerを導入してシングルページアプリケーション(spa)を作成します。最初にvue-routerのパッケージをインストールします。router-linkはナビ...


  • vue-router webpackでページごとにファイルを分割する

    vue-routerでシングルアプリケーションを作成していると、ページ数が増えるにしたがって作成されるjsファイルのファイルサイズもどんどん増えていきます。ページごとにファイルを分割し、そのページがア...


  • Vue.js webpackでHot Module Replacementを行う

    開発を効率化するために、Hot Module Replacement(HMR)の設定を行います。Hot Module Replacementを設定しておけば、ブラウザの再読込は行わず、修正した箇所のみ...