アプリにNodeJ、webpack、ES2015を使用しています。
モジュールに画像をインポートする方法がわからないようです。以下は動作しません。
import "../../css/image/t1.png";
編集:Sitianの要求に従って、ここに私のwebpack構成があります:
const webpack = require( "webpack" );
const path = require( "path" );
const merge = require( "webpack-merge" );
const TARGET = process.env.npm_lifecycle_event;
process.env.BABEL_ENV = TARGET;
const PATHS = {
app : path.join( __dirname, "app" ),
build : path.join( __dirname, "build" )
};
const common = {
entry : {
app : PATHS.app
},
resolve : { // helps us refer to .js? without ext.
extensions : [ "", ".js", ".jsx" ]
},
output : {
path : PATHS.build,
filename : "bundle.js"
},
module : {
preLoaders : [
{
test : /\.css$/,
loaders : [ "postcss" ],
include : PATHS.app
},
{
test : /\.jsx?$/,
loaders : [ "eslint" ],
include : PATHS.app
}
],
loaders : [
{
test : /\.css$/,
loaders : [ "style", "css" ],
include : PATHS.app
},
{
test : /\.jsx?$/,
loader : 'babel',
query : {
cacheDirectory : true,
presets : [ 'react', 'es2015' ]
},
include : PATHS.app
}
]
}
};
if( TARGET === "start" || !TARGET ) {
module.exports = merge( common, {
devtool : 'inline-source-map',
devServer : {
contentBase : PATHS.build,
hot : true,
progress : true,
stats : 'errors-only'
},
plugins : [
new webpack.HotModuleReplacementPlugin()
]
} );
}
if( TARGET === "build" ) {
module.exports = merge( common, {} );
}
file-loader (または rl-loader 、 "は、ファイルが制限よりも小さい場合にデータURLを返すことができます ")を使用して、画像をモジュールにインポートできます。
このようなローダーの使用方法の詳細については、 webpackローダーのドキュメント を参照してください。
構成
{ test: /\.png$/, loader: "url-loader?mimetype=image/png" }
現在のバージョンのwebpackでは、次のように機能するはずです。
import t1 from "../../css/image/t1.png";
およびwebpack.config(webpack 2.0):
module: {
rules: [
{test: /\.png$/, use: 'url-loader?mimetype=image/png'},
]
}
これを行うには、webpack(v1)構成にローダーを追加します。
{
test: /\.png$/,
loader: "url-loader?mimetype=image/png"
}
次にそれをインストールします:
npm install url-loader
最後に、次を使用して画像をインポートできるようになります。
import image from 'images/name.png'