webpackで構成したReactのプロジェクトで画像を配置して読み込みたい。
htmlのノリで普通にimgタグにsrc=""
としても画像は読み込まれないですよね。配置した画像を読み込ませるためにはfile-loader
をインストールしてwebpack.config.js
をいじらなくてはいけません。
file-loaderをインストール
まずは、file-loaderを入れます。
npm install --save-dev file-loader
file-loaderについては、githubのReadmeにも書いてあるので、見てみると良いです。
webpack.config.jsを編集する
loaderとして新たにインストールしたfile-loaderを使いたいので、追加します。
{ test: /\.(png|jpg|gif)$/, loader: 'file-loader', options: {}, }
これをwebpack.config.jsに追記します。
module.exports = [ { entry: [ './src/index.jsx', ], output: { path: publidDir, publicPath: '/', filename: 'bundle.js', }, module: { rules: [{ exclude: /node_modules/, loader: 'babel-loader', query: { presets: ['react', 'es2015'], }, }, { test: /\.(png|jpg|gif)$/, loader: 'file-loader', options: {}, }], }, ・・・
moduleのなかに記述しておきましょう。追記したら、きちんと動くかどうかアプリケーションを動かして見て確認してみることをおすすめします。
画像を読み込む
画像を読み込む際には他のコンポーネントと同じようにして読み込みます。
import Hoge from '../images/hoge.png';
読み込んだらあとは使うだけ。画像を表示させたい箇所で以下のような記述をしてみましょう。
<img src={Hoge} />
うまくいくと、画像が表示されているはずです。