我正在使用一个内部有一个 css 文件的节点库,该 css 文件会加载这样的图像
background-image: url("image.png");
在http://localhost:9000/ (根目录)请求的文件“image.png”很脏,无法在项目的根目录中放置图像。
另外我还有另一个问题,我不知道为什么模块的图像文件没有自动复制到构建文件夹,只有当我手动将图像文件复制到构建文件夹时才有效。使用 Webpack 配置参数,我得到了将图像复制到根目录的功能,但它给它们添加了随机名称,我不希望它们在根目录中。
我希望将所有加载的图像复制到 build 文件夹内的“img”子文件夹中,并使用它们的原始文件名,并在那里请求,因此根目录不会被那里的所有文件弄脏。
这是我的 webpack 配置文件:
var webpack = require('webpack');
var WebpackNotifierPlugin = require('webpack-notifier');
"use strict";
module.exports = {
entry: "./source/typescript/Main.ts",
output: {
filename: "./js/bundle.js"
},
devtool: "inline-source-map",
devServer: {
contentBase: ".",
host: "localhost",
port: 9000,
open: true
},
module: {
rules: [
{
test:/\.(s*)css$/,
use: [
{
loader: "style-loader"
},
{
loader: "css-loader",
options: {
url: false
}
},
{
loader: "sass-loader"
}
]
},
{
test: /\.tsx?$/,
use: 'ts-loader',
exclude: /node_modules/
},
{
enforce: 'pre',
test: /\.js$/,
loader: "source-map-loader"
},
{
test: /\.(png|jpg|gif|svg|eot|ttf|otf|woff|woff2|json|xml|ico)$/,
use: [{loader: 'file-loader'}]
},
{
test: /\.(csv|tsv)$/,
use: [{ loader: 'csv-loader' }]
},
{
test: /\.exec\.js$/,
use: [{ loader: 'script-loader' }]
},
{
test: require.resolve('jquery'),
use:
[
{
loader: 'expose-loader',
options: 'jQuery'
},
{
loader: 'expose-loader',
options: '$'
}
]
}
]
},
resolve: {
extensions: [ '.tsx', '.ts', '.js' ]
},
plugins: [
new WebpackNotifierPlugin({excludeWarnings: true}),
//new webpack.optimize.UglifyJsPlugin({compress: {warnings: false}}) // Uncoment to minify bundle
]
};