[英]Webpack won't compile my SASS with background-image
I have issue compiling my SASS code.我在编译 SASS 代码时遇到问题。 I would like to use a background image, but when I tried this, all my css stopped working.我想使用背景图像,但是当我尝试这样做时,我所有的 css 都停止工作。
My SASS file looks like this我的 SASS 文件看起来像这样
@import "~bootstrap/scss/bootstrap";
@import "constants";
#crossroad {
position:relative;
background-image: url("../assets/bg.jpg");
}
My Webpack.config我的 Webpack.config
const path = require('path');
module.exports = {
entry: './src/app.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist')
},
mode: "development",
module: {
rules: [
{
test: /\.(scss|png|jpg)$/,
use: [
{
// Adds CSS to the DOM by injecting a `<style>` tag
loader: 'style-loader'
},
{
// Interprets `@import` and `url()` like `import/require()` and will resolve them
loader: 'css-loader'
},
{
// Loader for webpack to process CSS with PostCSS
loader: 'postcss-loader',
options: {
plugins: function () {
return [
require('autoprefixer')
];
}
}
},
{
// Loads a SASS/SCSS file and compiles it to CSS
loader: 'resolve-url-loader'
},
{
// Loads a SASS/SCSS file and compiles it to CSS
loader: 'sass-loader'
}
]
}
]
}
};
ERROR MESSAGE:错误信息:
ERROR in ./src/assets/bg.jpg (./node_modules/css-loader/dist/cjs.js!./node_modules /postcss-loader/src??ref--4-2!./node_modules/resolve-url-loader!./node_modules/sass-loader/dist/cjs.js!./src/assets/bg.jpg) ./src/assets/bg.jpg 中的错误 (./node_modules/css-loader/dist/cjs.js!./node_modules /postcss-loader/src??ref--4-2!./node_modules/resolve- url-loader!./node_modules/sass-loader/dist/cjs.js!./src/assets/bg.jpg)
Module build failed (from ./node_modules/sass-loader/dist/cjs.js):模块构建失败(来自 ./node_modules/sass-loader/dist/cjs.js):
SassError: Invalid CSS after " ": expected "{", was "" SassError:“ ”之后的 CSS 无效:预期为“{”,是“”
on line 1 of /Users/adrianmindek/Code/PersonalPage/src/assets/bg.jpg在 /Users/adrianmindek/Code/PersonalPage/src/assets/bg.jpg 的第 1 行
^ ^
@ ./src/assets/bg.jpg 2:26-236 @ ./src/assets/bg.jpg 2:26-236
@ ./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/src??ref-- 4-2!./node_modules/resolve-url-loader!./node_modules/sass-loader/dist/cjs.js!./src/scss/app.scss @ ./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/src??ref-- 4-2!./node_modules/resolve-url-loader!./node_modules/sass-loader /dist/cjs.js!./src/scss/app.scss
@ ./src/scss/app.scss @ ./src/scss/app.scss
@ ./src/app.js @ ./src/app.js
I tried to add resolve-url-loader
to my webpack config, but nothing changed.我试图将resolve-url-loader
添加到我的 webpack 配置中,但没有任何改变。
You should handle file using file-loader like this您应该像这样使用 file-loader 处理文件
rules: [{
test: /\.scss$/,
use: [
'style-loader',
MiniCssExtractPlugin.loader,
{
loader: "css-loader",
options: {
minimize: true,
sourceMap: true
}
},
{
loader: "sass-loader"
}
]
},
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
loader: ["babel-loader", "eslint-loader"]
},
{
test: /\.(jpe?g|png|gif)$/i,
loader: "file-loader"
},
{
test: /\.(woff|ttf|otf|eot|woff2|svg)$/i,
loader: "file-loader"
}
]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.