一、webpack-dev-server

1、安装

cnpm   install  webpack-dev-server  -D

2、作用

开启一个web服务,监听文件的变化并自动刷新网页,做到实时预览。支持 Source Map,以方便调试

3、基本使用

devServer:{
   contentBase:path.join(__dirname,"dist"),
   host:"127.0.0.1"
   open:true,
   proxy:{
       "/api":{
           target:"http://www.baidu.com",
           changeOrigin:true
      }
  },
   prot:8080
}
  • contentBase:本地服务器加载页面的目录

  • host:指定使用的主机地址

  • hot:热模块替换

  • hotOnly:在没有页面刷新的情况下启用热模块替换

  • open:告诉dev-server在服务器启动后打开浏览器。将其设置true为打开默认浏览器。

  • proxy:代理 服务器代理跨域

  • prot:设置端口号

二、热模块更新 (Hot Module Replacement)

1、作用

假设当我们的模块样式发生改变的时候只需要更新css即可,不需要将整个页面进行重新加载。方便用于调试css

2、基本使用

constwebpack=require("webpack");
module.exports ={
   devServer:{
       contentBase:"./dist",
       open:true,
       port:8080,
       hot:true,//开启Hot Module Replacement
       hotOnly:true
  },
   plugins:[
       newwebpack.HotModuleReplacementPlugin()//webpack自带的插件
  ]
}

三、sourceMap配置(问题)

sourceMap是一个映射关系,它会将我们打包后的文件出错的部分对应打包前文件出错的部分,这样对于我们的代码调试是非常方便的

sourcemap是为了解决开发代码与实际运行代码不一致时帮助我们debug到原始开发代码的技术

注意如果配置了sourceMap后打包的速度回变慢

module.exports={
   devtool:"none"//关闭
   devtool:"source-map"
   devtool:"inline-source-map"//会将映射的文件已字符串的形式放入打包文件中
}

module.exports={
   devtool:"cheap-module-eval-source-map",//dev环境
   devtool:"cheap-module-source-map",//线上环境
}

inline:会将映射的文件已 字符串的形式放入打包文件中去

cheap:只会负责业务代码中的错误,不会负责node_modules中的错误

module:可以让source负责node_modules中的错误

四、resolve

Webpack 在启动后会从配置的入口模块出发找出所有依赖的模块,Resolve 配置 Webpack 如何寻找模块所对应的文件。Webpack 内置 JavaScript 模块化语法解析功能,默认会采用模块化标准里约定好的规则去寻找,但你也可以根据自己的需要修改默认的规则

alias

配置项通过别名来把原导入路径映射成一个新的导入路径

resolve:{
 alias:{
   components: path.join(__dirname,'./src/components/')
}
}

extensions

在导入语句没带文件后缀时,Webpack 会自动带上后缀后去尝试访问文件是否存在。resolve.extensions 用于配置在尝试过程中用到的后缀列表,默认是['.js', '.json']

也就是说当遇到 require('./data')  这样的导入语句时,Webpack 会先去寻找  ./data.js文件,如果该文件不存在就去寻找./data.json 文件, 如果还是找不到就报错

resolve: {
       extensions: ['.ts', '.tsx', '.js'],
     
},

五、webpack-merge

分离配置文件

我们在根目录下创建config文件夹,并创建四个配置文件:

  • webpack.comm.js 公共环境的配置文件

  • webpack.development.js 开发环境下的配置文件

  • webpack.production.js 生产环境下的配置文件

  • webpack.parts.js 各个配置零件的配置文件

如果配置文件被分成了许多不同的部分,那么必须以某种方式来组合他们,通常就是合并数组和对象,webpack-merge很好的做到了这一点。

webpack-merge做了两件事:它允许连接数组并合并对象,而不是覆盖组合

安装

cnpminstallwebpack-merge--save-dev

设置各个配置文件的连接

constbaseWebpackConfig=requie("./config/base.config.js");
constwebpackMerge=require('webpack-merge');
constwebpackConfig=webpackMerge(baseWebpackConfig, {
 
})

module.exports=webpackConfig

【webpack4.0】---webpack的基本使用(三)的更多相关文章

  1. [转]webpack4.0.1安装问题和webpack.config.js的配置变化

    本文转自:https://blog.csdn.net/jiang7701037/article/details/79403637 The CLI moved into a separate packa ...

  2. 【webpack4.0】---webpack的基本使用(一)

    一.初识webpack 1.什么是webpack? WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss ...

  3. webpack4.0.1安装问题和webpack.config.js的配置变化

    The CLI moved into a separate package: webpack-cli. Please install 'webpack-cli' in addition to webp ...

  4. webpack工具学习 构建简单vue项目(不依赖vue-cli) webpack4.0

    目的用webpack构建简单前端项目 1.npm init   (npm init -y)  形成package.json 2.npm install --save-dev webpack  形成 n ...

  5. 史上最走心webpack4.0中级教程——配置之外你应该知道的事

    <webpack4.0各个击破系列>适合不满足于只会配置webpack但一时间又看不懂源码的中级读者.我没法保证这个系列是最好的,但至少能保证每一篇博文都跟那些Ctrl+C和Ctrl+V的 ...

  6. webpack4.0各个击破(1)—— html部分

    webpack作为前端最火的构建工具,是前端自动化工具链最重要的部分,使用门槛较高.本系列是笔者自己的学习记录,比较基础,希望通过问题 + 解决方式的模式,以前端构建中遇到的具体需求为出发点,学习we ...

  7. webpack4.0各个击破(2)—— CSS篇

    webpack作为前端最火的构建工具,是前端自动化工具链最重要的部分,使用门槛较高.本系列是笔者自己的学习记录,比较基础,希望通过问题 + 解决方式的模式,以前端构建中遇到的具体需求为出发点,学习we ...

  8. webpack4.0各个击破(4)—— Javascript & splitChunk

    目录 一. Js模块化开发 二. Js文件的一般打包需求 三. 使用webpack处理js文件 3.1 使用babel转换ES6+语法 3.2 脚本合并 3.3 公共模块识别 3.4 代码分割 3.5 ...

  9. webpack4.0各个击破(6)—— Loader篇

    webpack作为前端最火的构建工具,是前端自动化工具链最重要的部分,使用门槛较高.本系列是笔者自己的学习记录,比较基础,希望通过问题 + 解决方式的模式,以前端构建中遇到的具体需求为出发点,学习we ...

  10. webpack4.0各个击破(8)—— tapable篇

    webpack作为前端最火的构建工具,是前端自动化工具链最重要的部分,使用门槛较高.本系列是笔者自己的学习记录,比较基础,希望通过问题 + 解决方式的模式,以前端构建中遇到的具体需求为出发点,学习we ...

随机推荐

  1. nim_duilib(18)之xml控件关联优化

    方法1 直接调用函数FindControl函数,返回Control*类型,对返回的类型强制转换 ui::CheckBox* pcheckbox = (ui::CheckBox*)(FindContro ...

  2. 【LeetCode】860. Lemonade Change 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  3. Sort(hdu5884)

    Sort Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  4. 1276 - Very Lucky Numbers

    1276 - Very Lucky Numbers    PDF (English) Statistics Forum Time Limit: 3 second(s) Memory Limit: 32 ...

  5. Autofac 依赖注入小知识

    Autofac 依赖注入小知识 控制反转/依赖注入 IOC/DI 依赖接口而不依赖于实现,是面向对象的六大设计原则(SOLID)之一.即依赖倒置原则(Dependence Inversion Prin ...

  6. 【Java例题】3.4求a+aa+aaa+aaaa+... ...+aa...a(n个

    4. package chapter3; import java.util.*; public class demo4 { public static void main(String[] args) ...

  7. 第四十六个知识点 在Sigma协议中,正确性,公正性和零知识性意味着什么

    第四十六个知识点 在Sigma协议中,正确性,公正性和零知识性意味着什么 Sigma协议 Sigma协议是Alice想要向Bob证明一些东西的协议(Alice知道一些秘密).他们有下面的一般范式:Al ...

  8. Proximal Algorithms 3 Interpretation

    目录 Moreau-Yosida regularization 与次梯度的联系 改进的梯度路径 信赖域问题 Proximal Algorithms 这一节,作者总结了一些关于proximal的一些直观 ...

  9. 图像处理opencv-Rect 排序、合并[转]

    opencv进行rect检测时,当检测到多个rect,组成rect vector之后,有些rect是由一个区域误分割得到的, 可以按照某种规格将这些rect合并为一个rect.比如按照x,y,widt ...

  10. 完全替代RTD2166方案设计|CS5202直接替代RTD2166|DP转VGA 方案

    CS5202可以直接PIN TO PIN替代RTD2166 整体方案设计只需改动一个电阻和一个电容,在性能和参数设定方面与RTD2166可以达成一致,且成本比RTD2166要低,性价比更高.CS520 ...