我真的很难理解在webpack中应该把图片/字体放在哪里才能正确地打包它们,并且如何在我的CSS中使用url()
。
我的webpack配置文件如下:
entry: ['./main.js',],
output: {
path: path.resolve(__dirname, './public/dist'),
publicPath: '/dist/',
},
它告诉我东西应该在哪里结束,但不知道它们从哪里来。我猜测这是加载器的工作,它们在项目中到处寻找文件并将它们复制到那里。我有一个用于图像的加载器:
{
test: /\.(png|jpg|jpeg|gif|svg|woff|woff2)$/,
loader: 'url-loader?limit=10000',
},
我创建了一个目录
/public/images
,里面包含一个名为test.png
的文件。我本来希望它会出现在public/dist/images/
或者/public/dist/
中,但是并没有出现。如果最终图片出现在其中一个目录,我该如何在CSS中使用它作为背景?是
/public/dist/images/test.png
吗?目前我有以下代码:.mydiv {
background: url("/public/images/test.png");
}
它似乎没有显示出来。看起来我甚至无法在css-modules中进行require
操作。
请你能否为我澄清一下这是如何工作的呢?
编辑:样式加载器:
{
test: /\.css/,
loaders: [
'style-loader',
`css-loader?${JSON.stringify({
sourceMap: isDebug,
modules: true,
localIdentName: isDebug ? '[name]_[local]_[hash:base64:3]' : '[hash:base64:4]',
camelCase: 'dashes',
})}`,
'postcss-loader',
],
},
{
test: /\.scss$/,
loaders: ["style", "css", "sass"],
},
require("../../public/images/test.png")
)导入了两个图像,并且其中一个在构建时被复制到/public/dist/
。但是在CSS中,仍然没有成功。 - JulienDlimit=10000
的意思)。至于样式:Webpack 只有在你在 JS 中require
样式时才会起作用(或者如果你有一个特定的entry
点)。而且没有额外的配置,CSS 将被包含在(JS)包中,而不是保存为单独的 .css 文件。 - robertklep