【问题标题】:extract-text-webpack-plugin - extracting scss results in no mapping in main.css.mapextract-text-webpack-plugin - 提取 scss 导致 main.css.map 中没有映射
【发布时间】:2017-04-02 12:28:05
【问题描述】:

我已经设法将 2 个 scss 文件提取到 1 个 css 文件中,但我注意到 main.css.map 中的源和映射是空的:

{"version":3,"sources":[],"names":[],"mappings":"","file":"./main.css","sourceRoot":""}


我的webpack.config.js

var autoprefixer = require('autoprefixer');
var ExtractTextPlugin = require("extract-text-webpack-plugin");

module.exports = {
    devtool: 'source-map',
    module:  {
        loaders: [
                {test: /\.(png|woff|woff2|eot|ttf|svg)$/, loader: 'url-loader?limit=100000'},
                { 
                    test:   /\.scss$/,
                    loader: ExtractTextPlugin.extract(['css', 'sass'])
                }
            }
        ]
    },

    entry:   [
        './static/js/app.js'
    ],

    output:  {
        filename: './static/js/bundle.js'
    },

    watch:   false,

    plugins: [
        new ExtractTextPlugin("./main.css")
    ]
};


我的app.js

var $ = require('jquery');
window.jQuery = $;
window.$ = $;
require('bootstrap-loader');

module.exports = (function () {
    alert('IT WORKS!');
});

window.app = module.exports;

require('./../css/main.scss');
require('./../css/main2.scss');


webpack 终端的输出:

Hash: 28bc2c1ea9d333be2975
Version: webpack 1.13.3
Time: 3500ms
                               Asset      Size  Chunks             Chunk Names
89889688147bd7575d6327160d64e760.svg    109 kB          [emitted]
               ./static/js/bundle.js    666 kB       0  [emitted]  main
                          ./main.css    126 kB       0  [emitted]  main
           ./static/js/bundle.js.map    813 kB       0  [emitted]  main
                      ./main.css.map  87 bytes       0  [emitted]  main
   [0] multi main 28 bytes {0} [built]
   [1] ./static/js/app.js 287 bytes {0} [built]
    + 29 hidden modules
Child extract-text-webpack-plugin:
        + 4 hidden modules
Child extract-text-webpack-plugin:
        + 4 hidden modules

如您所见,main.css 是与main.map.css 一起生成的,但此时它几乎没用,因为里面根本没有映射。

【问题讨论】:

    标签: css sass webpack


    【解决方案1】:

    最后,在尝试了无数组合之后,我想通了。使用这些 css 加载器的语法可能会让人头疼,并且随着 webpack 的发展而明显改变,因为一些适用于其他人的旧示例奇怪地不适用于我。

    尽管已经有了devtools: 'source-map' 选项,我还需要从以下位置更改加载器:

    { 
        test:   /\.scss$/,
        loader: ExtractTextPlugin.extract(['css', 'sass'])
    }
    

    进入:

    {
        test:   /\.scss$/,
        loader: ExtractTextPlugin.extract(['css-loader?sourceMap', 'sass-loader?sourceMap'])
    }
    

    感谢我在开发工具中检查我的 css 文件现在正确指向两个 scss 文件。

    【讨论】:

      猜你喜欢
      • 2017-06-13
      • 1970-01-01
      • 2018-01-26
      • 2017-07-11
      • 2016-03-11
      • 2016-03-04
      • 1970-01-01
      • 2016-01-14
      • 2017-03-08
      相关资源
      最近更新 更多