webpack-dev-server搭建本地服务器的实现

 更新时间:2021年07月14日 11:29:24   作者:Silent丿丶黑羽  
当我们使用webpack打包时,发现每次更新了一点代码,都需要重新打包,我们希望本地能搭建一个服务器,本文就介绍如何使用webpack-dev-server搭建本地服务器,感兴趣的可以了解一下

前言

当我们使用webpack打包时,发现每次更新了一点代码,都需要重新打包,这样很麻烦,我们希望本地能搭建一个服务器,然后写入新的代码能够自动检测出来,这时候就需要用到webpack-dev-server

webpack-deb-server

webpack提供了一个可选的本地开发服务器,这个本地服务器基于node.js搭建,内部使用express框架,可以实现我们想要的浏览器自动刷新显示我们修改后的结果

由于它是个单独的模块,使用之前,我们需要先安装,命令如下:

npm install -D webpack-dev-server 

安装完成之后,我们也是需要在webpack中进行配置,配置的对象是devServer ,它也有很多的属性,常用的几个属性如下:

  • contentBase:为哪一个文件提供本地服务,默认是根文件,我们这里要填写./dist
  • port:端口号,默认是8080
  • inline:页面实时刷新
  • historyApiFallBack:在SPA(单页面复应用)页面中,依赖HTML5的history模式

webpack.config.js配置如下:

module.exports = {
   devServer: {
        contentBase: "./dist",
        inline: true,
    },
}

接下来我们再在package.json文件中添加一条script命令:

"scripts": {
    "dev": "webpack serve"
  },

dev代表开发环境,以上我们的配置就算完成了 

webpack-dev-server启动报错

然后我们启动命令npm run dev,程序出现以下报错:

Error: Cannot find module 'webpack-cli/bin/config-yargs'

原因是webpack-cli的版本问题,我们先来看以下我们的版本

"webpack": "^5.44.0",
"webpack-cli": "^4.7.2",
"webpack-dev-server": "^3.11.2"

解决方案1

降低webpack-cli的版本,从4降到3

1.卸载webpack-cli

npm uninstall webpack-cli

2.安装webpack-cli@3

npm install webpack-cli@3 -D

然后启动就不会报错了,但是这只是临时的解决方案,我们推荐第二种解决方式 

解决方案2

更改scripts中的配置,将原来的webpack-dev-serve改为webpack serve即可

"scripts": {
    "dev": "webpack serve --open --mode development"
},

最后我们在终端输入npm run dev就可正常启动,并且会自动打开网页,因为我们加了参数--open,如果想手动打开,则取出--open即可

解决端口占用问题

如果你通过vue+webpack已经启动了一个项目,但是你又执行了一遍npm run dev,此时就会报以下错误

Error: listen EADDRINUSE: address already in use 127.0.0.1:8080

原因是我们上次启动的默认端口是8080,这次你又项启动一个项目端口依然是8080,但是8080端口已经被占用了,解决办法我们只需要将8080端口对应的PID进程号杀死即可

首先查找8080端口对应的进程ID

lsof -i:8080

找到对应的PID后使用kill命令杀死即可

kill -9 PID进程号

到此这篇关于webpack-dev-server搭建本地服务器 的文章就介绍到这了,更多相关webpack-dev-server搭建本地服务器 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Bootstrap 树控件使用经验分享(图文解说)

    Bootstrap 树控件使用经验分享(图文解说)

    很多项目中使用树来展示层级关系,还有些树是为了选中项然后其他地方调用选中项。今天脚本之家小编给大家带来了Bootstrap 树控件使用经验分享,需要的朋友参考下吧
    2017-11-11
  • JavaScript如何拦截全局Fetch的请求与响应详解

    JavaScript如何拦截全局Fetch的请求与响应详解

    全局的fetch()方法用于发起获取资源的请求,它返回一个promise,这个promise会在请求响应后被resolve,并传回Response对象,这篇文章主要给大家介绍了关于JavaScript如何拦截全局Fetch的请求与响应的相关资料,需要的朋友可以参考下
    2024-04-04
  • JavaScript简单表格编辑功能实现方法

    JavaScript简单表格编辑功能实现方法

    这篇文章主要介绍了JavaScript简单表格编辑功能实现方法,涉及javascript操作表格的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • JavaScript版经典游戏之扫雷游戏完整示例【附demo源码下载】

    JavaScript版经典游戏之扫雷游戏完整示例【附demo源码下载】

    这篇文章主要介绍了JavaScript版经典游戏之扫雷游戏实现方法,结合完整实例形式分析了扫雷游戏的原理与具体实现流程,并附带demo源码供读者下载参考,需要的朋友可以参考下
    2016-12-12
  • JavaScript仿windows计算器功能

    JavaScript仿windows计算器功能

    这篇文章主要为大家详细介绍了JavaScript仿windows计算器功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • jquery 实现上下滚动效果示例代码

    jquery 实现上下滚动效果示例代码

    上下滚动的效果,不用说,大家都有看到过,本文为大家介绍下使用jquery实现上下滚动效果,感兴趣的朋友可以参考下,希望对大家有所帮助
    2013-08-08
  • JavaScript获取数据类型的方法详解

    JavaScript获取数据类型的方法详解

    这篇文章给大家介绍了JavaScript获取数据类型的方法,文中所介绍的所有知识点、代码示例以及提供的解决方案,均不考虑 IE 浏览器,仅支持最新版本的 Chrome、Firefox、Edge 和 Safari 浏览器,需要的朋友可以参考下
    2024-02-02
  • 解析为什么axios会有params和data两个参数

    解析为什么axios会有params和data两个参数

    本文给大家分享为什么axios会有params和data两个参数,先来回顾一下axios的基本使用,怎么发送一个请求,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2023-10-10
  • JS创建对象的十种方式总结

    JS创建对象的十种方式总结

    面向对象是一种重要的编程范式,如何灵活的创建对象,是对编程基本功的考验,本来我们来探讨一下JavaScript中创建对象的十种方式,感兴趣的小伙伴可以了解下
    2023-10-10
  • webpack优化的深入理解

    webpack优化的深入理解

    这篇文章主要给大家介绍了关于webpack优化的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12

最新评论