22-source-map
const { resolve } = require('path')
const htmlWebpackPlugins = require('html-webpack-plugin')
module.exports = {
entry: ['./src/js/index.js', './src/index.html'],
output: {
filename: 'built.js',
path: resolve(__dirname, 'build'),
},
module: {
rules: [
// loader的配置
{
// 处理css资源
test: /\.css$/,
use: ['style-loader', 'css-loader']
},
{
// 处理less资源
test: /\.less$/,
use: ['style-loader', 'css-loader', 'less-loader']
},
{
// 处理图片资源
test: /\.(jpg|png|gif)$/,
loader: 'url-loader',
options: {
name: '[hash:10].[ext]',
limit: 8 * 1024,
// 关闭es6模块化
esModule: false,
outputPath: 'imgs'
}
},
{
// 处理html中img资源
test: /\.html/,
loader: 'html-loader'
},
// 处理其他资源
{
exclude: /\.(html|css|js|less|jpg|png|gif)/,
loader: 'file-loader',
options: {
name: '[hash:10].[ext]',
outputPath: 'media'
}
}
]
},
plugins: [
// plugins的配置
new htmlWebpackPlugins({
template: resolve(__dirname, 'src/index.html')
})
],
mode: 'development',
devServer: {
contentBase: resolve(__dirname, 'build'),
compress: true,
port: 3000,
open: true,
// 开启HMR功能
// 当修改了webpack配置,新配置要想生效,必须重新启动webpack服务
hot: true
},
devtool: 'eval-source-map'
}
/**
* source-map:一种提供源代码到构建后代码映射 技术 (如果构建后代码出错了,通过映射可以追踪源代码错误)
* [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map
* source-map:外部
* 错误代码准确信息 和 源代码的错误位置
* inline-source-map:内联
* 1. 只生成一个内联source-map
* 错误代码准确信息 和 源代码的错误位置
* hidden-source-map:外部
* 错误代码错误原因,但是没有错误位置
* 不能追踪到源代码错误,只能提示到构建后代码的错误位置
* eval-source-map:内联
* 1. 每一个文件都生成对应的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-soure-map(脚手架默认) / eval-cheap-module-souce-map
*
* 生产环境:源代码要不要隐藏? 调试要不要更友好
* 内联会让代码体积变大,所以在生成环境不要内联
* nosources-source-map 全部隐藏
* hidden-source-map 只隐藏源代码,会提示构建后代码错误信息
*
* --> souce-map / cheap-module-souce-map
*/
22-source-map的更多相关文章
- Javascript 如何生成Less和Js的Source map
为什么有Source map CSS和JS脚本正变得越来越复杂,为了解决网络瓶颈,大部分源代码都需要经过编译.合并.压缩才能运用到实际环境中.为了减少网络资源占用,源码一般都会经过以下方式处理: 使用 ...
- 源映射(Source Map)详解
一.什么是源映射 为了提高性能,很多站点都会先压缩 JavaScript 代码然后上线, 但如果代码运行时出现错误,浏览器只会显示在已压缩的代码中的位置,很难确定真正的源码错误位置. 这时源映射就登场 ...
- Source Map调试压缩后代码
在前端开发过程中,无论是样式还是脚本,运行时的文件可能是压缩后的,那这个时候调试起来就很麻烦. 这个时候,可以使用Source Map文件来优化调试,Source Map是一个信息文件,里面储存着原代 ...
- JavaScript Source Map 详解
源码地址: http://www.ruanyifeng.com/blog/2013/01/javascript_source_map.html 上周,jQuery 1.9发布. 这是2.0版之前的最后 ...
- java source map
Chrome 更新后出现了 jquery.min.map 404 (Not Found) 的信息 这个到底是什么东西?查询了一下,得到了以下资料 JQuery 官方解释 摘录一下內容 从 jQuer ...
- Source Map入门教程
部署前端之前,开发者通常会对代码进行打包压缩,这样可以减少代码大小,从而有效提高访问速度.然而,压缩代码的报错信息是很难Debug的,因为它的行号和列号已经失真.这时就需要Source Map来还原真 ...
- source map 的原理探究
线上产品代码一般是编译过的,前端的编译处理过程包括不限于 转译器/Transpilers (Babel, Traceur) 编译器/Compilers (Closure Compiler, TypeS ...
- source map
一.source map 概述 我们在打包中,将开发环境中源代码经过压缩,去空格,babel编译转化,最终可以得到适用于生产环境的项目代码,这样处理后的项目代码和源代码之间差异性很大,会造成无法deb ...
- Source map error
前端访问接口时火狐浏览器控制台出现了这个问题, source map文件是js文件压缩后,文件的变量名替换对应.变量所在位置等元信息数据文件,一般这种文件和min.js主文件放在同一个目录下. 比如压 ...
- 如何利用Grunt生成对应的Source Map文件,线上代码压缩使用chrome浏览器便于调式
如何利用Grunt生成对应的Source Map文件,线上代码压缩使用chrome浏览器便于调式 首先我们来说说为何要生成sourceMap文件呢?简单的说,sourceMap是为了压缩后的代码调式提 ...
随机推荐
- Flutter安装SDK及配置
一.下载SDK 1.官网下载 https://docs.flutter.dev/development/tools/sdk/releases?tab=macos 2.git下载 git clone h ...
- centos7查看ip地址
centos7查看ip地址 1.centos7进入终端 安装的centos7虚拟机(无图形界面):输入账号密码进入centos7 2.命令行输入 ip addr 查看 ip地址
- Windows10安装UR_RTDE
------------恢复内容开始------------ 要使用UR_RTDE必须先配置电脑环境,目前使用的环境是电脑win10,配置环境需要VS2019+boost1_66_0+cmake2.3 ...
- abp框架+mysql 数据库 执行批量新增和修改
protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken. ...
- 第二章 excel的快捷键操作
本章介绍excel中部分常用的快捷键 1.文件类 工作簿操作:Ctrl + N 新建:Ctrl + w 关闭当前:Ctrl + S 保存 F12 当前另存为 Ctrl + p 打印当前 2.通用类 C ...
- Python 跳动的小球
一.实验内容:跳动的小球游戏介绍 二.实验对象:<零基础学Python>第13章 Pygame游戏编程 实例01 用以下代码创建一个游戏弹窗: 导入pygame模块并且用init()方法初 ...
- Markdown操作方法
Markdown学习 标题 三级标题 四级标题 字体 原本 hello,world! 斜体 hello,world! 加粗 hello,world! 斜体加粗 hello,world! 删除 hell ...
- github fork 别人的项目源作者更新后如何同步更新
如下 左边选择我们拷贝的库 右边选择原工程 如下 点击箭头指向的位置 然后选择右边原工程目录
- Vue前端框架的基础学习,为之后打个基础
Vue 首先,在使用vue之前,我们需要先下载好一个vue.js文件,才能继续进行vue的学习,下载教程如下: 1.进入官网:https://v2.vuejs.org/ 2.选择页面中的Learn,再 ...
- windows 系统下 workerman 在同一个运行窗口中开启多个 websocket 服务
目录 开启多个 ws 服务失败 开启服务失败解决办法 同一个窗口中运行 开启多个 ws 服务失败 正常情况下,如果你想开启多个 websocket 服务的话 只要在一个文件中,输入 new Worke ...