n1croo
@n1croo
Front-end developer

Как реализовать раздельную компиляцию css в Webpack 4?

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

module.exports = {
  devtool: 'source-map',
  entry: './src/js/index.js',

  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'js/main.js'
  },

  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
          options: { presets: ['env'] }
        }
      },
      {
        test: /\.scss$/,
        use: [
          'style-loader',
          'css-loader',
          'sass-loader'
        ]
      },
      {
        test: /\.(png|jpg|jpeg|gif|svg)$/,
        use: [
          {
            loader: 'file-loader',
            options: {
              name: '[name].[ext]',
              outputPath: 'img/'
            }  
          }
        ]
      }
    ]
  },

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

  devServer: {
    contentBase: './src',
    compress: true,
    open: true,
    watchContentBase: true
  }
};

package.json
{
  "name": "project,
  "version": "1.0.0",
  "description": "",
  "scripts": {
    "dev": "webpack --mode development",
    "build": "webpack --mode production",
    "start": "webpack-dev-server --hot --mode development"
  },
  "author": "N!crO",
  "license": "ISC",
  "devDependencies": {
    "babel-core": "^6.26.0",
    "babel-loader": "^7.1.4",
    "babel-preset-env": "^1.6.1",
    "css-loader": "^0.28.10",
    "file-loader": "^1.1.11",
    "html-webpack-plugin": "^3.2.0",
    "node-sass": "^4.7.2",
    "sass-loader": "^6.0.7",
    "style-loader": "^0.20.3",
    "webpack": "^4.1.1",
    "webpack-cli": "^2.0.11",
    "webpack-dev-server": "^3.1.1"
  },
  "dependencies": {
    "npm": "^5.7.1"
  }
}



Нужно при запуске команды "npm run build" сделать компиляцию в отдельный файл, а при "npm start" должен запускаться dev-server и css записываться в head->style.
  • Вопрос задан
  • 220 просмотров
Пригласить эксперта
Ответы на вопрос 1
DMShamonov
@DMShamonov
Frontend developer
Если я правильно понял задачу - вынести *.css в отдельный bundle, то тебе нужен этот npm пакет https://www.npmjs.com/package/extract-text-webpack...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы