【发布时间】:2018-05-15 11:24:05
【问题描述】:
我是using Webpack 4,使用插件MiniCssExtractPlugin 和OptimizeCSSAssetsPlugin 提取SCSS 文件并在生产中缩小main.css 文件。我在我的配置文件中启用了源映射,如下所示:
const path = require('path');
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const OptimizeCSSAssetsPlugin = require("optimize-css-assets-webpack-plugin");
module.exports = {
devtool: "source-map",
entry: {
style: './src/scss/main.scss'
},
output: {
path: path.resolve(__dirname, "dist"),
filename: '[name].bundle.js'
},
module: {
rules: [
{
test: /\.css$/,
use: [
MiniCssExtractPlugin.loader,
{ loader: 'css-loader', options: { url: false, sourceMap: true } }
]
},
{
test: /\.scss$/,
use: [
'style-loader',
MiniCssExtractPlugin.loader,
{
loader: 'css-loader',
options: {
url: false, sourceMap: true
}
},
{
loader: 'sass-loader',
options: {
sourceMap: true
}
}
]
}
]
},
plugins: [
new MiniCssExtractPlugin({
sourceMap: true,
filename: "main.css"
}),
new UglifyJsPlugin({
sourceMap: true,
test: /\.js($|\?)/i,
}),
new OptimizeCSSAssetsPlugin({
cssProcessorOptions: {
map: {
inline: true
}
}
}) ,
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify('production')
})
]
}
在控制台中,它确实给出了 CSS 规则的来源行,但在捆绑的 main.css 文件中,而不是在单个 scss 文件中,即 _layout.scss、_buttons.scss。
问题
为了显示 CSS 规则的来源,而不是它在捆绑的 main.css 文件中的位置,我应该添加什么配置?
【问题讨论】:
-
你用的是什么编译器?
-
你的意思是
sass-loader? -
是的 :) 你可以通过使用 sass 编译器源映射和正确的浏览器配置来实现你所需要的。
-
我不是通过将
sass-loader的选项属性sourceMap设置为true来实现的吗? devtool 也设置为source-map?第一次使用 Webpack :o
标签: javascript css webpack sass minify