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

webpack lessをImportしてビルドする

Vue.js lessを使いwebpackでビルドするvueファイルの中でlessを実装してビルドする方法を紹介しました。

htmlbodyなどに適用するベースのクラスを外部のlessファイルに実装して、スタイルをサイト全体に適用したい場合があります。

外部のlessファイルをモジュールとしてImportしてwebpackでビルドする方法を紹介します。

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

Vue.js lessを使いwebpackでビルドするでインストールしたパッケージと同様ですが、もしインストールしていない場合は以下をインストールします。

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

webpack.config.jsの設定

vue-loaderのオプションで指定したlessloaderと同じloaderrulesに追加します。

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

動作確認

lessファイルの作成

Vue.js lessで外部のlessファイルをImportするで扱ったフォルダ構成を使用します。

lessフォルダのvariables.lessを以下のようにします。

variables.less
@red: #ff1122;
@blue: #1122ff;

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

app.less
@import "./variables";
body {
  background-color: @blue;
}

lessファイルのImport

エントリーポイントのapp.jsで先ほど作成したapp.lessをインポートします。

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

app.js
import 'less/app.less';
import Vue from 'vue';
import App from 'js/components/App.vue';

new Vue({
  el: '#app',
  render: h => h(App)
});

実行

実行するとapp.lessのスタイルが適用され、背景色が青になります。


関連記事

  • webpack モジュールのパスを絶対パスで指定する方法

    自分で作成したモジュールをインポートするときはインポートするファイルを基準に相対パスで指定する必要があります。フォルダ構成によっては深く階層を辿らないといけないので、フォルダ構成が変わってしまうと大変...


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

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


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

    .vueファイル(単一ファイルコンポーネント)のstyleをcssではなくlessで実装して、webpackでビルドをします。sassでも以下記事のlessの文言がsassに置き換わるくらいでやり方は...


  • ExtractTextPluginでcssファイルを出力する

    webpackのプラグインExtractTextPluginを使って、ビルドされたjsファイルからstyleの部分を抽出してcssファイルで出力します。extract-text-webpack-plu...


  • webpack-dev-serverで開発サーバーを起動する

    webpack-dev-serverで開発サーバーを起動します。ファイルやフォルダ構成などの環境はvueファイル(単一ファイルコンポーネント)をwebpackでビルドで紹介したものと同様とします。we...


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

    開発サーバー(localhost)の自動リロードで開発を効率化するために、Hot Module Replacement(HMR)の設定を行います。ファイルやフォルダ構成などの環境はwebpack-de...


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

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


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

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


  • webpack postcssを導入する

    webpackでpostcssを導入してautoprefixerなどを行います。必要なパッケージをインストールします。postcss-loaderはwebpackでpostcssを行うために必要です。...


  • webpack-dev-serverでhttpsでのアクセスを可能にする方法

    webpack-dev-serverでhttpsでのアクセスを可能にする方法を紹介します。外部APIのテストや、メディアデバイスのテストなどで、開発中のlocalhostをhttpsにする必要があると...