首页 web前端 前端问答 深入浅析devServer配置实现实时编译问题

深入浅析devServer配置实现实时编译问题

Aug 09, 2022 pm 03:22 PM
webpack

本篇文章给大家带来了关于javascript的相关知识,其中主要介绍了关于devServer配置实现实时编译的相关问题,webpack-dev-server主要是启动了一个使用express的Http服务器,下面一起来看一下,希望对大家有帮助。

深入浅析devServer配置实现实时编译问题

【相关推荐:javascript视频教程web前端

每次改完代码都需要重新打包一次,打开浏览器,刷新一次,很麻烦

我们可以安装使用webpackdevserver来改善这块的体验

webpack-dev-server主要是启动了一个使用express的Http服务器。它的作用主要是用来伺服资源文件。此外这个Http服务器和client使用了websocket通讯协议,原始文件作出改动后,webpack-dev-server会实时的编译,但是最后的编译的文件并没有输出到目标文件夹,即下面原本我们output中的配置:是打包后要生成dist文件夹的,但是用dev-server并没有生成dist目录

output: {
        path: './dist/js',
        filename: 'bundle.js'
    }
登录后复制

启动服务后,会发现dist目录没有了,这是因为devServer把打包后的模块不会放在dist目录下,而是放到内存中,从而提升速度

安装:npm install webpack-dev-server -D

修改下package.json:

01.png

那么以后就可以执行 npm run server即可启动我们的服务

在webpack.config.js配置:

02.png

跨域:联调期间,前后端分离,直接获取数据会跨域,上线后我们使用nginx转发,开发期间,webpack就可以搞定这件事

应用场景:我们在自己用express造了接口和数据,我们访问这些接口时候会造成跨域问题,之前都是在server.js中去设置响应头的形式去允许跨域。但是现在可以用devServer的代理也可以。

1.准备node服务,在项目根目录创建server.js,以express创建服务为例:

03.png

2.webpack.config,js文件中配置devServer:

04.png

3..安装axios,并在入口文件index.js中引入,用axios去请求接口数据

05.png

前台浏览器拿到结果:

06.png

Hot Module Replacement (HMR:热模块替换) 是webpack自带的一个模块,不需要额外安装

配置hmr:

1)配置文件webpack.config.js头部引入webpack

const webpack = require("webpack");
登录后复制

2)在插件配置处添加:

plugins: [
    new webpack.HotModuleReplacementPlugin()
]
登录后复制

3)启动hmr

07.png

 以上配置对js热更新不起作用,保存时候还是会刷新页面才会起到更新效果:

我们有两个b.js和a.js文件

b.js中 return 1

08.png

 a.js中 引入b.js ,并往页面中写入数据b的执行结果+一个数

09.png

在入口文件index.js中,引入a,运行npm run server(我们的热更新配置还是保留之前的不变)

10.png

然后我们打开页面,更改a.js中的b() + 1000的值,然后ctrl+s 保存,发现页面刷新后才能更新值。这显然不是我们想要看到的,对于js的热更新我们需要在入口文件中监听要执行的文件:

11.png

在更改a.js中的值后保存,不用刷新页面,值也会运算为最新值显示在页面中

12.png

 总结:HMR默认对css热更新支持教好,对于js需要单独的监听才可以

【相关推荐:javascript视频教程web前端

以上是深入浅析devServer配置实现实时编译问题的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

VUE3入门教程:使用Webpack进行打包和构建 VUE3入门教程:使用Webpack进行打包和构建 Jun 15, 2023 pm 06:17 PM

Vue是一款优秀的JavaScript框架,它可以帮助我们快速构建交互性强、高效性好的Web应用程序。Vue3是Vue的最新版本,它引入了很多新的特性和功能。Webpack是目前最流行的JavaScript模块打包器和构建工具之一,它可以帮助我们管理项目中的各种资源。本文就为大家介绍如何使用Webpack打包和构建Vue3应用程序。1.安装Webpack

vite和webpack的区别是什么 vite和webpack的区别是什么 Jan 11, 2023 pm 02:55 PM

区别:1、webpack服务器启动速度比vite慢;由于vite启动的时候不需要打包,也就无需分析模块依赖、编译,所以启动速度非常快。2、vite热更新比webpack快;vite在HRM方面,当某个模块内容改变时,让浏览器去重新请求该模块即可。3、vite用esbuild预构建依赖,而webpack基于node。4、vite的生态不及webpack,加载器、插件不够丰富。

如何使用PHP和webpack进行模块化开发 如何使用PHP和webpack进行模块化开发 May 11, 2023 pm 03:52 PM

随着Web开发技术的不断发展,前后端分离、模块化开发已经成为了一个广泛的趋势。PHP作为一种常用的后端语言,在进行模块化开发时,我们需要借助一些工具来实现模块的管理和打包,其中webpack是一个非常好用的模块化打包工具。本文将介绍如何使用PHP和webpack进行模块化开发。一、什么是模块化开发模块化开发是指将程序分解成不同的独立模块,每个模块都有自己的作

webpack怎么将es6转成es5的模块 webpack怎么将es6转成es5的模块 Oct 18, 2022 pm 03:48 PM

配置方法:1、用导入的方法把ES6代码放到打包的js代码文件中;2、利用npm工具安装babel-loader工具,语法“npm install -D babel-loader @babel/core @babel/preset-env”;3、创建babel工具的配置文件“.babelrc”并设定转码规则;4、在webpack.config.js文件中配置打包规则即可。

使用Spring Boot和Webpack构建前端工程和插件系统 使用Spring Boot和Webpack构建前端工程和插件系统 Jun 22, 2023 am 09:13 AM

随着现代Web应用程序的复杂性不断增加,构建优秀的前端工程和插件系统变得越来越重要。随着SpringBoot和Webpack的流行,它们成为了一个构建前端工程和插件系统的完美组合。SpringBoot是一个Java框架,它以最小的配置要求来创建Java应用程序。它提供了很多有用的功能,比如自动配置,使开发人员可以更快、更容易地搭建和部署Web应用程序。W

Webpack是什么?详解它是如何工作的? Webpack是什么?详解它是如何工作的? Oct 13, 2022 pm 07:36 PM

Webpack是一款模块打包工具。它为不同的依赖创建模块,将其整体打包成可管理的输出文件。这一点对于单页面应用(如今Web应用的事实标准)来说特别有用。

vue webpack可打包哪些文件 vue webpack可打包哪些文件 Dec 20, 2022 pm 07:44 PM

在vue中,webpack可以将js、css、图片、json等文件打包为合适的格式,以供浏览器使用;在webpack中js、css、图片、json等文件类型都可以被当做模块来使用。webpack中各种模块资源可打包合并成一个或多个包,并且在打包的过程中,可以对资源进行处理,如压缩图片、将scss转成css、将ES6语法转成ES5等可以被html识别的文件类型。

webpack支持es6吗 webpack支持es6吗 Jan 18, 2023 pm 07:01 PM

webpack支持es6。webpack 2支持原生的ES6模块语法,意味着开发者无须额外引入babel这样的工具,就可以使用import和export。但如果使用其他的ES6+特性,仍然需要引入babel工具。

See all articles