【发布时间】:2018-10-09 16:54:51
【问题描述】:
我是开发 React 应用程序的新手。 我试图弄清楚如何设置我的 webpack.config.js 文件。
正如您在下面的图片链接中看到的那样,我已经完成了这个结构。
我的问题是:当我运行 'npm run build' 时,它会散列图片并将其放入 /dist 文件夹。我怎样才能配置它不呢?
因为我使用 copyWebpackPlugin() 来复制我的图像并将其推送到 dist 文件夹,但我不想要我用箭头标记的图片。
如果有人有什么建议,请提出来。
这就是我的 webpack.config.js 文件的样子:
const path = require("path");
const webpack = require("webpack");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const CleanWebpackPlugin = require("clean-webpack-plugin");
const CopyWebpackPlugin = require("copy-webpack-plugin");
module.exports = {
entry: "./src/index.js",
mode: "development",
module: {
rules: [
{
test: /\.(js|jsx)$/,
exclude: /(node_modules|bower_components)/,
loader: "babel-loader"
},
{
test: /\.s?css$/,
loader: ["style-loader", "css-loader"]
},
{
test: /\.(jpe?g|png|gif|woff|woff2|eot|ttf|svg)(\?[a-z0-9=.]+)?$/,
loader: "url-loader?limit=100000"
}
]
},
resolve: { extensions: [".js", ".jsx"] },
output: {
path: path.resolve(__dirname, "dist/"),
filename: "bundle.js"
},
devtool: "cheap-module-eval-source-map",
devServer: {
contentBase: path.join(__dirname, "public/"),
proxy: {
"/api/*": {
target: "http://localhost:3000/",
secure: "true"
}
},
port: 4000,
publicPath: "http://localhost:4000/dist/",
hotOnly: true,
historyApiFallback: true
},
plugins: [
new webpack.HotModuleReplacementPlugin(),
new CleanWebpackPlugin(["dist"]),
new HtmlWebpackPlugin({
filename: "index.html",
template: "./public/index.html"
}),
new CopyWebpackPlugin([{ from: "public/images", to: "images" }])
]
};
【问题讨论】:
-
为什么你不想在你的图片上散列?
-
当我加载我的应用程序时,它不会显示图片:/ 我已将其添加到我的 /styles/App.css 中,我将 CSS 导入到 'index.js' 中。这是我在 App.css -> 背景中添加的: url('/images/developer.jpeg') no-repeat; .但是对于我使用 CopyWebpackHtmlPlugin 进行复制的解决方案,我只是复制了图像然后它就可以工作了。也许我做错了什么?
-
如果你尝试:
url('relative/path/to/images/developer.jpeg')? -
对不起,但我不确定你说 relative/path/to 是什么意思?你的意思是? 'src/images/developer.jpg' ?
-
相对路径。从您所在位置到图像所在位置的相对路径。