javascript - 如何在 webpack 中加载 sass 样式表中使用的图像?

标签 javascript css reactjs webpack webpack-style-loader

我正在使用 Webpack 来捆绑我的模块,并使用 sass 在基于 React 的应用程序中进行样式设置。

我使用单独的样式表设置组件的背景图像并在 index.js 中加载该样式表。样式表中的所有样式都应用于该组件背景图像除外

这是我的示例样式表

$bg-img: url('/img/bg.jpg');

.show {
    position: relative;
    background: $black $bg-img center center;
    width: 100%;
    height: 100%;
    background-size: cover;
    overflow: hidden;
}

解决该问题的一种方法是明确要求图像,然后为 React 组件创建内联样式。

img1 = document.createElement("img");
img1.src = require("./image.png");

但我想在我的样式表加载后立即加载我的图像文件夹中的所有图像,而不是分别要求每个图像。

我的 webpack 配置文件是

module.exports = {
  devtool: 'source-map',
  entry: {
    main: [
      'webpack-dev-server/client?http://localhost:8080',
      'webpack/hot/only-dev-server',
      './src/index.js'
    ]
  },
  output: {
    path: path.join(__dirname, 'public'),
    publicPath: '/public/',
    filename: 'bundle.js'
  },
  plugins: [
    new webpack.HotModuleReplacementPlugin(),
    new webpack.NoErrorsPlugin()
  ],
  module: {
   loaders: [
      {
        test: /\.jsx?$/,
        include: path.join(__dirname, 'src'),
        loader: 'react-hot!babel'
      },
      {
        test: /\.scss$/,
        include: path.join(__dirname, 'sass'),
        loaders: ["style", "css?sourceMap", "sass?sourceMap"]
      },
      { 
        test: /\.(png|jpg)$/,
        include: path.join(__dirname, 'img'),
        loader: 'url-loader?limit=10000' 
     } // inline base64 URLs for <=10k images, direct URLs for the rest
    ]
  },
  resolve: {
    extensions: ['', '.js', '.jsx']
  },
  devServer: {
    historyApiFallback: true,
    contentBase: './'
  }
};

我可能遗漏了一些琐碎的要点。感谢您的帮助。

最佳答案

啊....经过长时间的调试,我终于找到了问题所在。正是因为我的愚蠢,我才挣扎。我想删除这个问题,但认为它会在遇到类似问题时帮助像我这样的新来者。

问题出在这里

加载器:'url-loader?limit=10000'

我将文件大小限制设置为 10kb,但并不知道它的作用。我加载的图像大小为 21kb !当您复制其他一些 webpack 配置文件时会发生这种情况:) javascript 疲劳的迹象!

关于javascript - 如何在 webpack 中加载 sass 样式表中使用的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35325291/

相关文章:

javascript - 使用react-icons一次导入多个图标

javascript - 如何在个人资料图像标签中应用 onchange 图像预览

javascript - Facebook API - 使用 JSSDK 登录在后端使用 php sdk

CSS 背景图像在 Chrome 中显示,但在 IE 或 Firefox 中不显示

php - 在php中创建基于register的数据库驱动的用户主页

javascript - 如何使用断点从 Material UI 按钮中删除轮廓

reactjs - Jest 手动模拟在 CRA 中不使用模拟文件

php - jQuery - 将联系表单替换为 'thanks message'

javascript - 在 JavaScript 中复制字符串

html - 在 CSS 中从长网址添加背景图片