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

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

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

sassでも以下記事のlessの文言がsassに置き換わるくらいでやり方は基本的には同じです。

パッケージのインストール

以下のパッケージが必要なのでインストールをします。

  • less
  • less-loader
  • style-loader
  • css-loader
$ npm install --save-dev less less-loader style-loader css-loader

webpack.config.jsの設定

webpack-dev-serverで開発サーバーを起動するで紹介したwebpack.config.jsに設定を追記します。

vue-loaderのオプションにlessloaderを追加します。

webpack.config.js
// 一部抜粋
module: {
  rules: [
    {
      test: /\.vue$/,
      loader: 'vue-loader',
      options: {
        loaders: {
          js: 'babel-loader',
          less: ['style-loader', 'css-loader', 'less-loader']
        }
      }
    }
  ]
},

vueファイルの編集

styleタグにlang="less"を追加するとlessとして読み込まれます。

App.vue
<template>
  <div class="message">
    {{ message }}
  </div>
</template>

<style lang="less" scoped>
@red: #ff0000;
.message {
  color: @red;
}
</style>

<script>
export default {
  data () {
    return {
      message: 'hello hmr'
    };
  }
};
</script>

実行

ビルドをすると内部的にlessがコンパイルされてスタイルが適用されます。

外部のlessファイルを読み込む方法をVue.js lessで外部のlessファイルをImportするで紹介します。


続きを表示

関連記事

  • 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-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を設定しておけば、ブラウザの再読込は行わず、修正した箇所のみ...


  • Vue.js axiosをajaxライブラリとして導入する

    Vue.jsではajaxまわりの処理は用意されておらず、外部のライブラリを各自で自由に用意するようになっています。axiosの設定用にhttp.jsというファイルを作成します。エントリポイントのapp...