【问题标题】:Webpack won't compile my SASS with background-imageWebpack 不会用 background-image 编译我的 SASS
【发布时间】:2020-04-14 07:13:32
【问题描述】:

我在编译我的 SASS 代码时遇到问题。 我想使用背景图片,但是当我尝试这个时,我所有的 css 都停止工作了。

我的 SASS 文件如下所示

@import "~bootstrap/scss/bootstrap";
@import "constants";

#crossroad {
  position:relative;
  background-image: url("../assets/bg.jpg");
}

我的 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'
          }
        ]
      }
    ]
  }
};

错误信息:

./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)
模块构建失败(来自 ./node_modules/sass-loader/dist/cjs.js):
SassError:“����”之后的 CSS 无效:预期为“{”,为“”
在 /Users/adrianmindek/Code/PersonalPage/src/assets/bg.jpg 的第 1 行

����
^
@ ./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
@ ./src/scss/app.scss
@ ./src/app.js

我尝试将 resolve-url-loader 添加到我的 webpack 配置中,但没有任何改变。

【问题讨论】:

    标签: javascript node.js npm webpack sass


    【解决方案1】:

    你应该像这样使用文件加载器来处理文件

    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"
                }
            ]
    

    您可以从here查看代码

    【讨论】:

      猜你喜欢
      • 2019-01-07
      • 2020-03-12
      • 2016-07-26
      • 2017-11-25
      • 1970-01-01
      • 1970-01-01
      • 2018-12-27
      • 2016-10-05
      • 2016-08-30
      相关资源
      最近更新 更多