前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【前端】SourceMap帮助开发者调试代码

【前端】SourceMap帮助开发者调试代码

作者头像
演化计算与人工智能
发布2022-01-24 13:57:18
9000
发布2022-01-24 13:57:18
举报

一、sourceMap帮助开发者调试代码

1.1 devtool配置

1.1.1 devtool:'none'

代码语言:javascript
复制
devtool:'none'

报错提示:
main.js:96 Uncaught TypeError: console.logg is not a function
    at Object../src/index.js (main.js:96)
    at __webpack_require__ (main.js:20)
    at main.js:84
    at main.js:87

如果不小心写错了代码,打包之后,会提示报错信息,根据提示只能找到打包后的文件,不能找到源代码的文件。

1.1.2 devtool:'eval-source-map'

代码语言:javascript
复制
devtool:'eval-source-map'

  提示:
index.js?b635:1 Uncaught TypeError: console.logg is not a function
    at eval (index.js?b635:1)
    at Object../src/index.js (main.js:96)
    at __webpack_require__ (main.js:20)
    at main.js:84
    at main.js:87

这里就指向了源代码的报错位置,更利于开发的修改。source-map 打包之后会生成一个.map文件,是打包文件与源文件的映射文件。

1.1.3 配置开发环境

代码语言:javascript
复制
mode:'development',
devtool:'cheap-module-eval-source-map', // 开发环境   优点:有错误代码提示  打包速度较快

1.1. 4 配置生产环境

代码语言:javascript
复制
mode:'production',
devtool:'cheap-module-source-map', // 生产环境 打包一次,错误代码提示

1.1.5 总结

  • **cheap:错误代码只定位到行,不会定位到列 **
  • **module:错误代码不仅提示源代码,还提示loader中的报错信息 **
  • eval:不会生成map文件,会使用eval语句展示映射关系

二、简化打包流程

2.1 安装依赖

代码语言:javascript
复制
npm install webpack-dev-server --save-dev

2.2 修改package.json

代码语言:javascript
复制
  "scripts": {
    "build": "webpack",
    "watch": "webpack --watch",
    "dev": "webpack-dev-server"
  },

2.3 npm run dev

之前的开发流程:修改源代码 -> 重新执行 npm run build 进行打包 -> 刷新页面 -> 看到最新的源代码执行的结果。

使用webpackDevServer 优化流程: 修改了源代码 -> 直接就看到最新的源代码执行的结果。(npm run dev)提升开发效率

代码语言:javascript
复制
devServer:{
    contentBase:'./dist',
    open:true, //在server启动后打开浏览器
    port: 3000, // 指定监听请求的端口号
  },

2.4 watch

代码语言:javascript
复制
"watch":"webpack --watch",

监听源代码是否变化,如果变化就重新打包,但是打包后的文件没有index文件,需要自己手动添加

三、请求转发

由于在实际情况下,线上环境和本地环境不是同一个地址,本地开发需要做代理。

3.1 安装依赖

代码语言:javascript
复制
npm install axios --save-dev

3.2 配置webpack.config.js文件

代码语言:javascript
复制
devServer:{
    contentBase:'./dist',
    open:true,//在server启动后打开浏览器
    port: 3000,// 指定监听请求的端口号
    proxy:{
      '/Yixiantong':{
        target:'http://study.jsplusplus.com',
        changeOrigin:true
      }
    }
  },

3.3 index.js文件

代码语言:javascript
复制
import axios from "axios"

axios.get('/Yixiantong/getHomeDatas').then(res=>{
    console.log("res+++",res)
})

请求到/Yixiantong/getHomeDatas现在会被代理到请求 http://localhost:3000/Yixiantong/getHomeDatas

代码语言:javascript
复制
proxy:{
 '/api':{
   target:'http://study.jsplusplus.com',
       // target:'https://study.jsplusplus.com',// 如果是https,需要 secure:false,
       // secure:false,
       changeOrigin:true,
       pathRewrite:{
        '^/api':'' //以/api开头的都设置为''  比如abc/api 等价于'' 意思是请求接口不需要以api开头,但是前端写的时候会有/api/
       }
      }
    }

image.png

本示例提供完整代码:链接: https://pan.baidu.com/s/1NgqUSN-KErFBMKBSfGxopw 提取码: rhgr

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DrawSky 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、sourceMap帮助开发者调试代码
    • 1.1 devtool配置
      • 1.1.1 devtool:'none'
      • 1.1.2 devtool:'eval-source-map'
      • 1.1.3 配置开发环境
      • 1.1. 4 配置生产环境
      • 1.1.5 总结
  • 二、简化打包流程
    • 2.1 安装依赖
      • 2.2 修改package.json
        • 2.3 npm run dev
          • 2.4 watch
          • 三、请求转发
            • 3.1 安装依赖
              • 3.2 配置webpack.config.js文件
                • 3.3 index.js文件
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档