I am trying to use webpack for importing images. Like this:
import img from '../assets/bmo.png';
But I keep getting the error:
module not found: '../assets/bmo.png'
I have tried all kinds of different paths to the image:
import img from '../assets/bmo.png';
import img from '../../assets/bmo.png';
import img from './assets/bmo.png';
import img from './src/assets/bmo.png';
Imports of other files do work:
import { GameOver } from "./scenes/game-over";
My folder structure:
index.html
-src
-scenes
game-over.ts
-assets
bmo.png
-dist
bundle.js
Why can't I use import
to import images?
EDIT
Webpack config:
var path = require('path');
var pathToPhaser = path.join(__dirname, '/node_modules/phaser/');
var phaser = path.join(pathToPhaser, 'dist/phaser.js');
module.exports = {
entry: './src/game.ts',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js',
},
module: {
rules: [
{ test: /\.ts$/, loader: 'ts-loader', exclude: '/node_modules/' },
{ test: /phaser\.js$/, loader: 'expose-loader?Phaser' },
{ test: /\.(png|jpg|gif)$/, use: [{loader: 'file-loader', options: {
outputPath: 'images',
} }]}
]
},
devServer: {
contentBase: path.resolve(__dirname, './'),
publicPath: '/dist/',
host: '127.0.0.1',
port: 8080,
open: true
},
resolve: {
extensions: ['.ts', '.js'],
alias: {
phaser: phaser
}
}
};