【webpack学习笔记】a04-建立开发环境
开发环境就是在开发过程中为了方便配置的环境,生产环境就是开发完成即将上线的情况。
好了,说了句废话,切入正题。
在开发时,打包后的文件压缩成一团,报错调试的时候傻眼了有木有?每次做出修改需要到浏览器查看效果的时候,都要手动npx webpack或者npm run build手动进行打包,耗时又费劲有木有?
用几个工具配置开发环境(不能用于生产环境)解决这个问题:
source map
source map 可以将编译后的代码映射回原始源代码
截个官方图:

具体用法:
webpack.config.js
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: {
print: './src/print.js',
app: './src/index.js'
},
output:{
filename: '[name].bundle.js',
path: path.resolve(__dirname, 'dist')
},
devtool: 'inline-source-map' //这里可配置各种选项
plugins:[
new HtmlWebpackPlugin({
title: 'Output Management',
filename: 'index.html',
template: './src/index.html',
inject: 'body'
})
]
};
webpack Watch && webpack-dev-server
webpack Watch(观察模式)可以解决每次修改后都要手动命令打包的问题,修改完后直接在浏览器中刷新就可以查看。
若刷新都懒得刷新,想一修改就看到结果怎么办?那就用webpack-dev-server.
webpack-dev-server提供了一个简单的 web 服务器,并且能够实时重新加载(live reloading)
webpack Watch(观察模式)直接在package.json文件中直接配置就好,配置完后直接在命令行运行npm run watch就可以观察模式,但webpack-dev-server还需要安装一下,我们看下例子:
npm install --save-dev webpack-dev-server
package.json

webpack.config.js
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: {
print: './src/print.js',
app: './src/index.js'
},
devtool: 'inline-source-map',
devServer: {
//在这里告诉webpack-dev-server,将 dist 目录下的文件,作为可访问文件
contentBase:'./dist'
},
plugins:[
new HtmlWebpackPlugin({
title: 'Output Management',
filename: 'index.html',
template: './src/index.html'
})
],
output:{
filename: '[name].bundle.js',
path: path.resolve(__dirname, 'dist')
}
};
配置好后,命令行运行npm start,就可以开启懒得刷新的懒人模式。
踩坑记录:
在学习官方文档,也就是webpack-dev-server这一部分的时候踩了一个坑,当时在配置好webpack.config.js和package.json后,运行命令npm start成功,没有报错,但是浏览器控制台却报404,页面中也显示"Cannot GET".
查看后发现,我的dist目录并没有打包出来。
这是我当时的配置文档:

问题就出现红框勾出来的地方,当时我配置了清理dist目录,只要注释掉就可以正常运行了。
还有就是这时候输出的文件名最好不要配置hash值,否则也会出现找不到文件的情况。
其实清理dist目录和配置文件hash值都是用于生产环境,在开发环境去掉了也不会有影响。
【webpack学习笔记】a04-建立开发环境的更多相关文章
- Hadoop学习笔记(4) ——搭建开发环境及编写Hello World
Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclip ...
- 【webpack学习笔记】a06-生产环境和开发环境配置
生产环境和开发环境的配置目标不一样,生产环境主要是让文件压缩得更小,更优化资源,改善加载时间. 而开发环境,主要是要开发更方便,更节省时间,比如调试比如自动刷新. 所以可以分开配置不同的开发环境,然后 ...
- Vue学习笔记(五)——配置开发环境及初建项目
前言 在上一篇中,我们通过初步的认识,简单了解 Vue 生命周期的八个阶段,以及可以应用在之后的开发中,针对不同的阶段的钩子采取不同的操作,更好的实现我们的业务代码,处理更加复杂的业务逻辑. 而在这一 ...
- C#学习笔记一:C#开发环境的设置
C#是.NET Framework的一部分,用于编写.NET应用程序. C#集成开发环境(IDE) 微软提供了以下C#编程开发工具: Visual Studio 2010 (VS) Visual C# ...
- NLP自然语言处理学习笔记三(集成开发环境)
前言: 我们在做自然语言学习的过程中使用Python进行编程.是用解析器的方式确实有些麻烦.在这里给大家推荐一款集成开发环境IDE可以很方便的对Python进行项目管理,代码自动提示,运行调试等. 简 ...
- Cocos2d-x学习笔记之Cocos2d-x开发环境搭建
作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz Cocos2d-x源码包下载地址: http://cocos2d-x.org/projects/cocos2d-x/ ...
- Egret学习笔记.2 (Egret开发环境)
配置Egret的开发环境是很简单的,去https://www.egret.com/products/engine.html下载 然后基本就是下一步下一步,安装好了就好了,装好了选择Wing组件,然后下 ...
- go语言学习笔记1 Go开发环境
什么是Go?Go是一门并发支持.垃圾回收的编译型系统编程语言,旨在创造一门具有在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡的一门编程语言. Go的主要特点有哪些?* 类型安全 和 内存安 ...
- 【EJB学习笔记】——EJB开发环境搭建(Eclipse集成JBoss)
之前一直用的EJB开发环境是他们搭建好的,直接拿来用,不过还是感觉老吃别人嚼好的不太好吃,所以自己动手来玩一玩. EJB开发依赖的最基本的环境:JDK.Eclipse.JBoss,这里简单介绍一下最基 ...
- 零基础Android学习笔记-01 安卓开发环境搭建
安卓开发环境搭建. 1.首先准备JDK,从官网找到JDK下载地址,原来做.NET不熟悉JAVA,干脆用最新的,下载了JDK 1.7的版本.原来装过1.5还要配置环境变量什么的.但1.7好像很给力,装好 ...
随机推荐
- JS版剑指offer
介绍 用JavaScript刷完了剑指offer,故总结下每道题的难度.解决关键点,详细题解代码可以点链接进去细看. 关于JS刷题的技巧可以看我之前的这篇:JS刷题总结. 剑指offer的题目在牛客网 ...
- MyBatis进阶(四)
mapper.xml文件的编写 mapper.xml映射文件实现数据库和实体类之间的映射关系,定义操作数据库的sql语句. 主体部分 文件头部 <?xml version="1.0&q ...
- 20165306 Exp5 MSF基础应用
Exp5 MSF基础应用 一.实践概述 1. 实践内容 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.实现: 1.1一个主动攻击实践 ms08-067+window ...
- 剑指offer:反转链表
问题描述 输入一个链表,反转链表后,输出新链表的表头. c++代码 /* struct ListNode { int val; struct ListNode *next; ListNode(int ...
- CentOS7攻克日记(三) —— 安装Python3.6
我是在EVERNOTE上面写的,本来格式是有代码段的,结果复制上来就没有了,所以会有一点乱,我就不调整了 我主要安装的是python环境,这一篇主要解决一下python的问题.在这里给个建议,安装 ...
- laravel 框架的 csrf
由于 laravel 框架自带 csrf 防护, 也就是通过中间件验证请求的 token, 所以 form 表单必须如下设置才可以正常提交, 否则会 419: <form method=&quo ...
- druid 连接池加密算法
package juint; import com.alibaba.druid.filter.config.ConfigTools; public class DruidTest { public s ...
- 关于AMD 、CMD、 commonjs的认识
首先什么是amd.cmd和commonjs.总的来说,这三个玩意就是js的模块规范. 但是,这三者有什么区别呢.... amd规范是应用于浏览器,如requireJS. commonjs规范应用与服务 ...
- vmstat命令参数介绍
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况.这个命令是我查看Linux/Unix最 ...
- EOJ Monthly 2019.2
题解 A 回收卫星 #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include<bits/s ...