Добавить стиль в связанный код с помощью webpack

GitHub: https://github.com/Chirag161198/react-boilerplate 1

Вот шаблон реакции, который я пытаюсь создать с нуля. Я связал html с кодом реакции, но я не могу добавлять стили (CSS). Я слышал об ExtractTextPlugin, но не могу его настроить. Пожалуйста, предложите какой-нибудь способ добавить к нему стили.

Заранее спасибо.

Наверное, нужно посмотреть плагин node-sass

KolaCaine 24.08.2018 10:49
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
1
1 264
2

Ответы 2

Вам нужно использовать style-loader и css-loader в вашем webpack.config.js

Сначала установите эти два пакета через npm: npm install style-loader, css-loader --dev

Затем создайте styles.css в папке src и добавьте в файл следующие стили (только для демонстрации, чтобы вы знали, что он работает правильно):

body {
  background-color: #ff4444;
}

Не забудьте импортировать файл css в свой src / index.js:

import React from 'react';
import ReactDOM from 'react-dom';
import App from './components/App.js';
import './styles.css'; // <- import the css file here, so webpack will handle it when bundling

ReactDOM.render(<App />, document.getElementById('app'));

И используйте style-loader и css-loader в вашем webpack.config.js:

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: './src/index.js',
  output: {
    path: path.join(__dirname, 'dist'),
    filename: 'bundle.js',
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: { loader: 'babel-loader' },
      },

      {
        test: /\.css$/,
        use: ['style-loader', 'css-loader'],
      },
    ],
  },

  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html',
    }),
  ],
};

Если вы не видите правильного вывода, возможно, вам придется снова перезапустить сервер webpack dev. Я клонировал ваше репо и внес изменения, как я упоминал выше, это работает.

Что касается ExtractTextPlugin, он вам понадобится при объединении для производственной сборки, вы можете узнать больше из их Репо

Надеюсь, поможет!

Hi Chirag ExtractTextPlugin отлично работает, но когда дело доходит до кеширования и хеширования пакетов. Пакет css становится 0 байт. Поэтому они представили MiniCssExtractPlugin, который решил эту проблему. Очень важно кэшировать статические файлы, поскольку размер вашего приложения со временем увеличивается. сначала импортировать плагин:

var MiniCssExtractPlugin = require("mini-css-extract-plugin");

добавьте их в конфигурацию вашего веб-пакета:

rules: [

   {
      test: /\.js$/,
      exclude: /node_modules/,
      use: {
        loader: 'babel-loader'
      }
    },
    {
      test: /\.scss$/,
      use:  [  'style-loader', MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader']
    }
  ]
}
plugins: [
  new MiniCssExtractPlugin({
    filename: 'style.css',
  }),
  new HtmlWebpackPlugin({
    template: './src/index.html',
  }),

Сообщите мне, что проблема не устранена.

Можете ли вы сказать мне, почему вы добавили параметр имени файла в HtmlWebpackPlugin?

Chirag 24.08.2018 11:56

По умолчанию webpack записывает HTML в index.html, но в случае, если нам нужно указать другой каталог для внедрения index.html, мы указываем имя файла

Sakhi Mansoor 24.08.2018 11:59

Когда я использовал то же самое, что и выше, он выдавал ошибку при сборке npm run, но когда я удалил параметр имени файла из HtmlWebpackPlugin, он отлично собрал.

Chirag 24.08.2018 15:35

Поскольку мой каталог сборки находится за пределами каталога src. Вам не нужно его настраивать.

Sakhi Mansoor 24.08.2018 16:37

Другие вопросы по теме