Возможно ли, чтобы html-webpack-plugin генерировал элементы ‹style› из CSS?

У меня есть статический сайт, на котором я использую Vue и Webpack.

У меня есть несколько глобальных правил CSS в файле с именем style.css, и я импортирую их, используя import './styles.css' из моего index.js файла. Кроме того, у меня есть несколько .vue файлов, которые генерируют собственный CSS.

Для создания HTML-страницы я использую html-webpack-plugin.

Мои правила CSS применяются правильно. Однако содержащие их теги <style> динамически добавляются в <head> моей страницы через Javascript, который генерирует Webpack. Я бы предпочел, чтобы эти <style> теги отображались статически в сгенерированном index.html файле. Есть ли способ добиться этого?

Кроме того, если возможно, я бы хотел, чтобы CSS был минимизирован.

Это мой файл конфигурации веб-пакета:

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const VueLoaderPlugin = require('vue-loader/lib/plugin');

module.exports = {
  entry: './index.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist')
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './index.html',
    }),
    new VueLoaderPlugin()
  ],
  module: {
    rules: [
      {
        test: /\.vue$/,
        loader: 'vue-loader'
      },
      {
        test: /\.css$/,
        use: [
          'vue-style-loader',
          'css-loader'
        ]
      }
    ]
  },
  mode: 'development'
};

person Adrian    schedule 08.06.2018    source источник
comment
Я бы сказал, что это необычный вариант использования. Для разработки подойдут элементы динамического стиля. Обычно в производстве используется отдельный миниатюрный файл CSS. Зачем вам нужен минимизированный CSS в файле HTML?   -  person Sidney    schedule 09.06.2018
comment
Я надеялся, что это уменьшит время загрузки сайта.   -  person Adrian    schedule 09.06.2018
comment
Оптимизировать ваш сайт - это здорово, но если вы на самом деле не измерили проблему, я бы посоветовал вам не проводить оптимизацию раньше времени! В любом случае динамически вводимые стили подходят для большинства небольших сайтов.   -  person Sidney    schedule 09.06.2018
comment
если вы заботитесь о времени загрузки, вы должны использовать долгосрочное кеширование для большинства ресурсов, но вы никогда не хотите, чтобы пользователь кешировал index.html. При таком подходе вы хотите сделать index.html как можно меньше.   -  person Petr Averyanov    schedule 09.06.2018


Ответы (1)


Похоже на точный вариант использования этих плагинов html-webpack:

  • # P2 #
    # P3 #
  • # P4 #
    # P5 #
  • # P6 #
    # P7 #

Последние 2 подключаемых модуля веб-пакета HTML зависят от одного из следующих подключаемых модулей веб-пакета:

  • # P9 #
    # P10 #
  • # P11 #
    # P12 #
person ghybs    schedule 09.06.2018