Я пытаюсь включить исходные карты в веб-пакете, но, похоже, проблема с комбинацией sass-loader и postcss-loader.
Когда включены как sass-loader, так и postcss-loader, моя консоль показывает «нет источника»:
Но когда я отключаю postcss-loader, sourceMap работает нормально и указывает на файл "typography":
webpack.config.js
const path = require('path');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
module.exports = {
mode: 'development',
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
publicPath: '/dist',
filename: 'js/bundle.js',
},
devtool: 'inline-source-map',
module: {
rules: [{
test: /\.css$/i,
use: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: ['css-loader', 'postcss-loader']
})
},
{
test: /\.scss$/i,
use: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: [{
loader: 'css-loader',
options: {
sourceMap: true
}
},
{
loader: 'postcss-loader',
options: {
sourceMap: true
}
},
{
loader: 'sass-loader',
options: {
sourceMap: true
}
}
]
})
},
{
test: /\.js$/i,
exclude: /node_modules/,
loader: 'babel-loader'
}
]
},
plugins: [
new ExtractTextPlugin('css/style.css')
]
};
main.scss
@import 'typography';
typography.scss
p {
font-size: responsive 12px 18px;
}






Вы можете попробовать следующее. Это то, что я использую, и это работает.
{
test: /\.(sa|sc|c)ss$/,
exclude: ['/node_modules', './dist', '/src/js', '/docs'],
use: [
MiniCSSExtractPlugin.loader,
{
loader: 'css-loader',
options: {
sourceMap: true,
minimize: process.env.NODE_ENV === 'production',
}
},
{
loader: 'postcss-loader',
options: {
sourceMap: true,
syntax: postCssScss,
plugins: () => [
autoprefixer,
postCssPresetEnv({
stage: 0,
features: {
'color-mod-function': true,
'alpha-hex-colors': true
}
}),
],
},
},
{
loader: 'sass-loader',
options: {
sourceMap: true
}
}
]
}
extractTextPlugin устарел для Webpack4 в пользу miniCssExtractPlugin.
Я знаю ... поэтому я прокомментировал здесь :) Но я удалю свой комментарий, так как он действительно может сбивать с толку.
Если css-loader изменился, не стесняйтесь обновить ответ, чтобы он не возвращал ошибку
Вы правы, мой комментарий содержит ошибку. Но вы действительно используете в своем коде минимизацию.