Как добавить изображение в стили SCSS в React?

Как настроить пути к файлам из папки "public" в вашем проекте, используя Webpack и TypeScript?
  • 26 июля 2024 г. 15:23
Ответы на вопрос 1
Для добавления изображения в стили SCSS в React, вы можете использовать свойства background-image или url в своих стилях. Например:

```scss
.image {
  background-image: url('path/to/your/image.jpg');
}
```

Чтобы настроить пути к файлам из папки "public" в вашем проекте с использованием Webpack и TypeScript, вам потребуется настроить плагин HtmlWebpackPlugin в вашем конфигурационном файле Webpack.

Пример настройки путей к файлам из папки "public" с использованием HtmlWebpackPlugin:

```javascript
// webpack.config.js
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: './src/index.tsx',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js'
  },
  module: {
    rules: [
      {
        // rules for handling TypeScript files
        test: /\.tsx?$/,
        use: 'ts-loader',
        exclude: /node_modules/
      },
      {
        // rules for handling SCSS files
        test: /\.scss$/,
        use: [
          'style-loader',
          'css-loader',
          'sass-loader'
        ]
      },
      {
        // rules for handling images
        test: /\.(png|svg|jpg|jpeg|gif)$/,
        use: [
          'file-loader'
        ]
      }
    ]
  },
  resolve: {
    extensions: ['.tsx', '.ts', '.js']
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './public/index.html'
    })
  ]
};
```

В данном примере мы добавили правило для обработки изображений с помощью file-loader, который позволяет загружать изображения из папки "public".

Теперь вы можете использовать пути к файлам из папки "public" в вашем проекте, например:

```tsx
import React from 'react';
import image from '../public/image.jpg';

const App: React.FC = () => {
  return (
    <div>
      <img src={image} alt="Image" />
    </div>
  );
};

export default App;
``` 

Обратите внимание, что плагин HtmlWebpackPlugin автоматически скопирует ваш index.html из папки "public" в папку вывода dist и вставит ссылку на ваш bundle.js.
Похожие вопросы