Sourcemaps с webpack css-loader

Я пытаюсь получить исходные файлы, работающие с css-загрузчиком.

Вывод в консоли:

введите описание изображения здесь

Что говорит документация css-loader:

SourceMaps

Чтобы включить SourceMaps, задайте параметр запроса sourceMap.

требуется ( "CSS-погрузчик? SourceMap!./file.css" )

Мой webpack.config

var webpack = require('webpack')

module.exports = {
  entry: './src/client/js/App.js',

  output: {
    path: './public',
    filename: 'bundle.js',
    publicPath: '/'
  },

  plugins: process.env.NODE_ENV === 'production' ? [
    new webpack.optimize.DedupePlugin(),
    new webpack.optimize.OccurrenceOrderPlugin(),
    new webpack.optimize.UglifyJsPlugin()
  ] : [],

  module: {
    loaders: [
      { test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader?presets[]=es2015&presets[]=react' },
      { test: /\.scss$/, loaders: ['style', 'css', 'sass']},
      { test: /\.css$/, loader: "style-loader!css-loader?sourceMap!./file.css" },
      { test: /\.png$/, loader: "url-loader?limit=100000" },
      { test: /\.jpg$/, loader: "file-loader" }
    ]
  }
}

Как включить сас

import React from 'react'
import { render } from 'react-dom'
import { Router, browserHistory } from 'react-router'
import routes from './routes'
import '../scss/main.scss'

render(
  <Router routes={routes} history={browserHistory}/>,
  document.getElementById('app')
)

Ответы

Ответ 1

  • Включить исходные карты через webpack

    ...
    devtool: 'source-map'
    ...
    
  • Возможно, вам захочется включить исходные карты для Sass-Files, а также

    module: {
      loaders: [
        ...
        {
          test: /\.scss$/,
          loaders: [
            'style-loader',
            'css-loader?sourceMap',
            'sass-loader?sourceMap'
          ]
        }, {
          test: /\.css$/,
          loaders: [
            "style-loader",
            "css-loader?sourceMap"
          ]
        },
        ...
      ]
    }
    
  • Используйте извлечь текстовый плагин, чтобы извлечь ваш css в файл.

    ...
    plugins: [
      ...
      new ExtractTextPlugin('file.css')
    ]
    ...
    

Ответ 2

В настройках вашего веб-пакета есть некоторые свойства, которые необходимо установить.

{
   output: {
      ...
   },

   debug: true, // switches loaders into debug mode
   devtool: 'eval-cheap-module-source-map', // or one of the other flavors, not entirely sure if this is required for css source maps
   ...
}

У сервера webpack dev по умолчанию нет отладки. Вместо того, чтобы устанавливать его в своей конфигурации, вы также можете передать флаг -d или --debug в webpack-dev-server через CLI.