【发布时间】:2021-09-24 21:58:12
【问题描述】:
在 SASS 中,我有一个带有如下 URL 的 CSS 规则:
.eSearchFAQsAccord-q {
&::after {
content: url("./images/caret.svg");
}
}
默认情况下,Webpack 会解决这个问题(尽管它会阻塞我的 SVG)。我希望它不解决。我希望浏览器从我的static 目录中单独加载此图像。
到目前为止,我不知道该说些什么。我在我的 Webpack 配置中尝试了很多来自网络的 很多 设置,但都不起作用......
这是我的 Webpack 配置,我认为它是开箱即用的:
const CopyWebpackPlugin = require("copy-webpack-plugin");
module.exports = {
mode: "development",
entry: {
index: `./src/index.js`,
},
target: "web",
output: {
path: `${__dirname}/dist`,
filename: "[name].js",
},
plugins: [
new CopyWebpackPlugin({
patterns: [{ from: "static" }],
}),
],
devServer: {
hot: true,
inline: true,
host: "localhost",
port: 8080,
watchOptions: {
poll: true,
},
},
module: {
rules: [
{
test: /\.s[ac]ss$/i,
use: [
"style-loader",
{
loader: "css-loader",
options: {
sourceMap: true,
},
},
{
loader: "sass-loader",
options: {
sourceMap: true,
},
},
],
},
{
test: /\.js$/,
enforce: "pre",
use: ["source-map-loader"],
},
],
},
};
我确定我的问题是因为我对 Webpack 没有深入的了解,但是我认为文档并不是一目了然。
【问题讨论】:
-
您是否在使用 css-loader,如果是,请尝试删除它。 webpack.js.org/loaders/css-loader
-
是的,我认为我的配置接近默认设置...是说这是禁用该功能的方式吗?完全放弃 css-loader?
-
你为什么要为 CSS 使用 webpack?唯一需要的是,如果您使用样式化的组件(例如,导入 css 文件的 JS 代码,这在很多情况下是有问题的)。对于普通页面 CSS,你根本不需要 webpack,只需将你的 sass 编译为你的资产目录中的 css,然后在你的 HTML 模板中使用
<link>元素正常加载它。 -
所以“啊哈”时刻,我可以关闭 css-loader 并在
.css文件中实现content,但这对我来说似乎是一种解决方法......对于未来,我应该询问是否有可以在我的 SASS/SCSS 中执行此操作的设置。这可能吗? -
...如果没有别的,用于组织。我真的需要为单个 CSS 规则创建一个单独的文件以与相关样式分开吗?我可能会接受,但想知道这是否是唯一的方法。
标签: javascript css webpack sass