FontAwesome
webpack

webpackにfont-awesomeを読み込ませる

More than 1 year has passed since last update.

webpackにfont-awesomeを読み込ませる方法を調べたところ、以下の3つの方法がありました。
最初の方法が一番良さそうですが、今回はフロントエンドに疎く簡単な一番最後の方法を採用しました。

webpack.config.jsにfont-awesomeの設定を記載する

こちらのgistを参考にすると良さそうです。gistが長いためURLのみ載せます。

https://gist.github.com/Turbo87/e8e941e68308d3b40ef6#file-webpack-config-js

Justineo/vue-awesome

https://github.com/Justineo/vue-awesome

以下のようにコンポーネントのようなイメージでfont-awesomeを利用できるモジュールです。
ただ、今回の場合は既存のソースで fa-xx などが少なからずあることから、書き換えコストを考えて採用しませんでした。

<!-- basic -->
<icon name="beer"></icon>

<!-- with options -->
<icon name="refresh" scale="2" spin></icon>
<icon name="comment" flip="horizontal"></icon>
<icon name="code-fork" label="Forked Repository"></icon>

<!-- stacked icons -->
<icon label="No Photos">
  <icon name="camera"></icon>
  <icon name="ban" scale="2" class="alert"></icon>
</icon>

gowravshekar/font-awesome-webpack

betaということとあまりメンテされてないため積極的に導入したくないですが、今回はこちらを利用してみました。
モジュールの内容としては1.の方法を隠蔽してくれているようなモジュールだと思います。

font-awsomeを利用するために必要なのは次の2つの作業だけです。

npm install --save font-awesome font-awesome-webpack url-loader

url-loaderをインストールしていないと npm run dev の際に以下のエラーがはかれるため先に入れておきます。

ERROR in ./~/font-awesome-webpack/~/css-loader!./~/less-loader!./~/font-awesome-webpack/font-awesome-styles.loader.js!./~/font-awesome-webpack/font-awesome.config.js
Module not found: Error: Cannot resolve module 'url-loader' in /app/web/node_modules/font-awesome-webpack

次にwebpack.config.jsを修正したらおしまいです。

module.exports = {
  module: {
    loaders: [
      // the url-loader uses DataUrls.
      // the file-loader emits files.
      { test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: "url-loader?limit=10000&mimetype=application/font-woff" },
      { test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: "file-loader" }
    ]
  }
};

元記事

webpackにfont-awesomeを読み込ませる