SourceMap的配置

什么是SourceMap?我们看下面的案例:

在不使用SourceMap的情况下

1.我在index.js中故意写错代码然后让它打包看看:


在这里我故意把console.log写错了

2.还有就是webpack.config.js中的配置需要修改一下,因为在mode=‘development’的模式下,webpack默认devtool=‘sourceMap’.


在这我将devtool改成了none

3.打包运行效果:
然后我们看它的错误提示

总结:它的错误提示定位到我已经打包好了的index_bundle.js下面了,对于我们找错误是很不方便的.

使用SourceMap

配置webpack.config.js

//将devtool:'source-map'即可
const path=require('path');
const HtmlWebpackPlugin=require('html-webpack-plugin');
const {CleanWebpackPlugin}= require('clean-webpack-plugin');
module.exports={
    mode:'development',
    devtool:'source-map',
    entry:{
        main:'./index.js'
    },
    module:{
        rules:[
            {
                test:/\.jpg$/,
                use:{
                    loader:'file-loader',
                    options:{
                        outputPath:'images',
                        name:'img.jpg'
                    }
                }
            },
            {
                test: /\.css$/,
                use: ['style-loader', 'css-loader'],
            },{
                test: /\.scss$/,
                use: [
                    "style-loader", // creates style nodes from JS strings
                    "css-loader", // translates CSS into CommonJS
                    "sass-loader" // compiles Sass to CSS, using Node Sass by default
                ]
            }
        ]
    },
    output:{
        path:path.resolve(__dirname,'./dist'),
        filename:'index_bundle.js'
    },
    plugins:[new HtmlWebpackPlugin({
        template:'./index.html'
    }),new CleanWebpackPlugin()]
}

打包运行结果如下:


image.png

我们可以看到它已经能定位到错误的文件中的第几行了.

总结:sourceMap是一种映射关系它能从打包好的文件中映射到源文件错误的地方.
扩展:
其实配置devtool就是配置sourceMap,关于更多的devtool的配置可以查看https://webpack.js.org/configuration/devtool/
我们在平常开发中(mode=development)devtool一般为:'cheap-module-eval-source-map'(这样配置能加快打包的效率)
在上线时配置(mode=production):'cheap-module-source-map'

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容