css - Webpack 中带有 sass-loader 和 postcss-loader 的 sourceMap
问题描述
我正在尝试在 webpack 中启用 sourceMaps,但 sass-loader 和 postcss-loader 组合似乎存在问题。
启用 sass-loader 和 postcss-loader 后,我的控制台显示“无源”:
但是当我禁用 postcss-loader 时,sourceMap 工作正常并指向“排版”文件:
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')
]
};
主文件
@import '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
}
}
]
}
对于Webpack4, extractTextPlugin已被弃用,取而代之的是miniCssExtractPlugin
推荐阅读
- r - 如何在R中制作海盗情节
- node.js - Puppeteer 选择后单击 a
- jenkins - Jenkinsfile 如何使用数组介绍数组?
- excel - 错误:此键已与 Excel VBA 中此集合的元素相关联
- python - 通过其子集选择列表的元素
- c# - 在使用 MVVM 的 WPF 中,谁负责管理外部通信?
- r - 如何创建一个新列,将不重复的字符保留在 R 中的先前字符上?
- node.js - 如何使用受保护的 api 路由并使用 Nodejs 验证 JWT 令牌?
- rust - 如何从 Rust 中的不安全内存创建原子
- group-by - 在不使用 collect_list 的情况下获取具有列值列表的列的替代方法是什么