• webpack优化环境配置 19.sourcemap


    source-map 一种 提供 源代码 到 构建后代码映射 技术 (如果构建代码出错了,通过映射可以追踪源代码错误)

    在 webpack.config.js 中配置 devtool 指定 source-map

    1.文件结构

     

    2.代码

     webpack.config.js

    const {resolve} = require('path');
    const HtmlWebpackPlugin = require('html-webpack-plugin');
    
    module.exports = {
        entry: ['./src/js/index.js', './src/index.html'],
        output: {
            filename: 'js/built.js',
            path: resolve(__dirname, 'build')
        },
        module: {
            rules: [
                // loader的配置
                {
                    // 处理less资源
                    test: /\.less$/,
                    use: ['style-loader', 'css-loader', 'less-loader']
                },
                {
                    // 处理css资源
                    test: /\.css$/,
                    use: ['style-loader', 'css-loader']
                },
                {
                    // 处理图片资源
                    test: /\.(jpg|png|gif)$/,
                    loader: 'url-loader',
                    options: {
                        limit: 8 * 1024,
                        name: '[hash:10].[ext]',
                        // 关闭es6模块化
                        esModule: false,
                        outputPath: 'imgs'
                    }
                },
                {
                    // 处理html中img资源
                    test: /\.html$/,
                    loader: 'html-loader'
                },
                {
                    // 处理其他资源
                    exclude: /\.(html|js|css|less|jpg|png|gif)$/,
                    loader: 'file-loader',
                    options: {
                        name: '[hash:10].[ext]',
                        outputPath: 'media'
                    }
                }
            ]
        },
        plugins: [
            // plugins的配置
            new HtmlWebpackPlugin({
                template: './src/index.html'
            })
        ],
        mode: 'development',
        //npx webpack-dev-server
        devServer: {
            contentBase: resolve(__dirname, 'build'),
            compress: true,
            port: 3000,
            open: true,
            hot: true
        },
        devtool: 'cheap-module-source-map'
    };
    /*
        source-map 一种 提供 源代码 到 构建后代码映射 技术 (如果构建代码出错了,通过映射可以追踪源代码错误)
    
        [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map
    
        source-map:外部
          错误代码准确信息 和 源代码的错误位置
    
        inline-source-map:内联
          只生成一个内联source-map
          错误代码准确信息 和 源代码的错误位置
    
        hidden-source-map:外部
          错误代码错误原因,但是没有错误位置
          不能追踪源代码错误,只能提示到构建后代码的错误位置
    
        eval-source-map:内联
          每一个文件都生成对应的source-map,都在eval
          错误代码准确信息 和 源代码的错误位置
    
        nosources-source-map:外部
          错误代码准确信息, 但是没有任何源代码信息
    
        cheap-source-map:外部
          错误代码准确信息 和 源代码的错误位置
          只能精确到行
    
        cheap-module-source-map:外部
          错误代码准确信息 和 源代码的错误位置
          module会将loader的source map加入
    
        内联 和 外部的区别:1. 外部生成了文件,内联没有 2. 内联构建速度更快
    
        开发环境:速度快,调试更友好
          速度快(eval>inline>cheap>...)
            eval-cheap-souce-map
            eval-source-map
          调试更友好
            souce-map
            cheap-module-souce-map
            cheap-souce-map
    
          --> eval-source-map  / eval-cheap-module-souce-map
    
        生产环境:源代码要不要隐藏? 调试要不要更友好
          内联会让代码体积变大,所以在生产环境不用内联
          nosources-source-map 全部隐藏
          hidden-source-map 只隐藏源代码,会提示构建后代码错误信息
    
          --> source-map / cheap-module-souce-map
    */
    
    //文档地址: https://www.webpackjs.com/configuration/devtool/

    3.启动

    $ npx webpack-dev-server

    4.预览

     

    end~

  • 相关阅读:
    排列组合
    动态规划-上台阶
    砝码称重3
    砝码称重2
    砝码称重1
    砝码称重
    TestDirector其他
    TestDirector域或工程用户的管理
    TestDirector创建域或工程
    LoadRunner8 安装步骤
  • 原文地址:https://www.cnblogs.com/sener/p/16669941.html
Copyright © 2020-2023  润新知