AJAX入门到实战,学习前端框架前必会的(ajax+node.js+webpack+git)(九)

26.搭建开发环境

开发环境 | webpack 中文文档 (docschina.org)

之前运行时出现的警告和mode配置有关

目标11:配置开发服务器环境 webpack-dev-server

   11.1 下载 webpack-dev-server 软件包到当前项目

   11.2 设置打包的模式为开发模式,配置自定义命令

   11.3 使用 npm run dev 来启动开发服务器,试试热更新效果

注意1:webpack-dev-server 借助 http 模块创建 8080 默认 Web 服务

注意2:默认以 public 文件夹作为服务器根目录

注意3:webpack-dev-server 根据配置,打包相关代码在内存当中,以 output.path 的值作为服务器根目录(所以可以直接自己拼接访问 dist 目录下内容)

内存有,磁盘也有

output.path 的值

神奇操作

可自动跳转

可观察到自动打包及热更新

27.打包模式

不推荐配置项的方式(写完代码,还得记得修改值,不如记住命令)

代码被极致压缩

修改build命令

分成一段段的好处,某个文件的代码发生变化,直接替换对应名字对应的代码,让我们更快速看到开发项目的运行效果(模块热替换更快速)

补充:打包的main.css

28.打包模式的应用

需求:在开发模式下用 style-loader 内嵌更快,在生产模式下提取 css 代码

在开发模式下用 style-loader把css代码内嵌在js文件中,开发时如果样式发生修改,可以更快地替换到我们网页上

在生产模式下,想要把css单独提取成一个文件,为了让打包输出后的代码,在用户的浏览器上可以并行下载css和js代码

需要判断当前运行时所在的环境

方案1:webpack.config.js 配置导出函数

模式(Mode) | webpack 中文文档 (docschina.org)

只接受2种模式,但项目开发过程中,配置可能不止区分于两个环境,可能有测试环境,预发布环境,还有一些其他环境

方案2:借助 cross-env (跨平台通用)包命令,设置参数区分环境

独立文件

内嵌

方案3::配置不同的 webpack.config.js (适用多种模式差异性较大情况)

生产环境 | webpack 中文文档 (docschina.org)

29.前端-注入环境变量

webpack 中文文档 (docschina.org)

webpack为内置

该插件会在webpack打包源代码时,把代码视作字符串,匹配到对应的key,会替换成value

(cross-env 设置的只在 Node.js 环境生效,前端代码无法访问 process.env.NODE_ENV,但打包后使用该插件打包会留下相应的字符串值)

不能直接使用表达式(字符串)

process.env.NODE_ENV

插件内部源码发现value为字符串,会将其视作变量

30.打包模式的应用

31.开发环境调错 - source map

开发环境 | webpack 中文文档 (docschina.org)

Devtool | webpack 中文文档 (docschina.org)

制作错误,在183行

报错行数与源码对不上

配置devtool选项,启动开发环境

点击跳转

所以上线不要使用source map

生产环境

打包后,只有一行,外加列数

32.解析别名 alias

使用别名

别名生效

33.优化-CDN使用

1.模板语法(html-webpack-plugin插件要求使用的语法)

学习过程中,使用免费的cdn服务

1.在 html 中引入第三方库的 CDN 地址 并用模板语法判断

(在网站里找到响应的网址)

2. 配置 webpack.config.js 中 externals 外部扩展选项

(防止某些 import 的包被打包)

如果为开发环境,cdn则不生效

3. 两种模式下打包观察效果

开发

查看源代码,没有cdn地址

生产

bootstrap样式没有一起被打包进来

axios的import语句变成了一个全局变量留在原地

网页样式正常,请求可发送

知识补充:

逻辑代码先于axios代码引入,为何正常执行?

——因为添加了defer属性

面试官:说一下script 标签中 defer(推迟) 和 async(异步) 的区别_script的async和defer应用场景-CSDN博客

34.多页面打包

1.之前手写的js代码统一外部导入html使用,现在需要使用模块化导入入口文件

2.下载 form-serialize 包并导入到核心代码中使用(略过,该部分目前暂时没用上,表单搜集已经逐一手写过)

3.配置 webpack.config.js 多入口和多页面的设置(如图)

35.案例-发布文章页面打包

无论在本地开发,或打包到生产模式,都可以用cdn引入css,

不需要变量接收,用不到css代码里面的内容,

自己编写的代码(index.js)需要被处理,要引到入口js中

如果

本地开发用npm下载,

上线再用cdn要使用模板语法判断

wangeditor只能用require的方式代入(webpack两种导入方式都能识别)

36.优化-分割公共代码

生成公共代码:

37.总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/642205.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenGL ES 实现图像腐蚀、膨胀、边缘检测

前文我们详细讲了图像锐化的基本原理,本文再介绍一下图像基本处理之腐蚀、膨胀和边缘检测,它们在图像处理和计算机视觉领域有着广泛的应用。 图像腐蚀(Image Erosion):用于缩小或消除图像中物体的边界。主要用于去除图像中的小细节、噪声或不规则物体。 实现图像腐蚀的片…

高清短视频素材网站有哪些?分享十个做短视频必备的素材下载网站!

对于专注于短视频制作和剪辑的朋友来说,找到高质量的视频素材至关重要。你可能会想:“高清短视频素材网站有哪些?”别担心,今天我要为大家推荐十个提供优质素材的网站,帮你轻松搞定短视频制作! 怪木素材网…

垃圾收集算法

垃圾收集算法有如下几种: 分代收集理论:年龄代和老年代选择各自的垃圾收集算法。 复制算法:可达性分析算法找非垃圾对象,然后把非垃圾对象移动到另一端,这一端的垃圾对象清除,该方法浪费内…

SpringBoot解决Slow HTTP慢速攻击漏洞

项目场景: 扫描到的漏洞截图: 攻击原理: Web应用在处理HTTP请求之前都要先接收完所有的HTTP头部,因为HTTP头部中包含了一些Web应用可能用到的重要的信息。攻击者利用这点,发起一个HTTP请求,一直不停的发送…

〖大前端 - ES6篇①〗- ES6简介

说明:该文属于 大前端全栈架构白宝书专栏,目前阶段免费,如需要项目实战或者是体系化资源,文末名片加V!作者:哈哥撩编程,十余年工作经验, 从事过全栈研发、产品经理等工作,目前在公司…

burp靶场--host攻击

burp靶场–host攻击 https://portswigger.net/web-security/host-header#what-is-an-http-host-header-attack 在本节中,我们将讨论错误配置和有缺陷的业务逻辑如何通过 HTTP 主机标头使网站遭受各种攻击。我们将概述用于识别易受 HTTP 主机标头攻击的网站的高级方…

PolarDB无感切换特性助力游戏领域高可用实践

❤️作者主页:小虚竹 ❤️作者简介:大家好,我是小虚竹。2022年度博客之星评选TOP 10🏆,Java领域优质创作者🏆,CSDN博客专家🏆,华为云享专家🏆,掘金年度人气作…

零代码编程:用ChatGPT智能批量删除文件标题中的某些字符

文件里面有很多个mp4视频文件,要批量删除文件标题中的“Little Fox - ”“Level 04”、“Level 4”、“Level04”“ - ”、“-”、“_”等字母和符号。 在ChatGPT中输入提示词如下: 你是一个Python编程专家,要完成一个批量重命名文件标题的任…

【wu-framework-parent 1.2.2-JDK17-SNAPSHOT 新版本中的 ACW】

版本: 1.2.2-JDK17-SNAPSHOT 项目地址:https://gitee.com/wujiawei1207537021/wu-framework-parent/tree/master/wu-smart-intergration/wu-smart-acw 演示地址:http://124.222.48.62:30193/wu-smart-acw-ui/index.html admin/admin docker启动 dock…

AI大概不会很快抢走你的饭碗哦!

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

Unity3d引擎中使用AIGC生成的360全景图(天空盒)

前言 在这里与Skybox AI一起,一键打造体验无限的360世界,这是这个AIGC一键生成全景图的网站欢迎语。 刚使用它是23年中旬,在没有空去给客户实地拍摄全景图时,可以快速用它生成一些相关的全景图,用作前期沟通的VR de…

数据结构——Java实现栈和队列

一、栈 Stack 1.特点 (1)栈是一种线性数据结构 (2)规定只能从栈顶添加元素,从栈顶取出元素 (3)是一种先进后出的数据结构(Last First Out)LIFO 2.具体实现 Java中可…

Zookeeper集群

一、Zookeeper概述 1.1 Zookeeper 定义 Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。 1.2 Zookeeper 工作机制 Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理…

华夏基金“冰火两重天”:产品增量不增值,靠什么赢得用户?

近日,华夏基金发布关于华夏野村日经225交易型开放式指数证券投资基金(QDII)(下称“华夏野村日经ETF”)二级市场交易价格溢价风险提示及临时停牌公告。 公告内容显示,华夏野村日经ETF二级市场交易价格明显高…

备战2个月,面试被问麻了....

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

为什么静态IP是您批量创建社交媒体和账户管理必备?

“新设备登录请求被拒绝,请使用常用设备登录。”谁没有遇到过远程管理社交或商业账户时登录被拒的情况呢? 更糟糕的情况可能是遇到这样的提示:“您的账号可能被盗用,暂时限制使用。请按要求进行身份验证。” 最坏的结果则可能是因为各种原…

工业RFID读卡器的功能和作用

工业读卡器主要用于识别和读写特定目标的数据,它的种类有很多,有分体的读写器也有一体的读写器,根据不同场景的应用可以选择不同的读写器。 工业RFID读卡器的功能和作用 工业RFID读卡器在工业自动化和物流管理等领域中发挥着重要作用。其主要…

什么是DDoS攻击?

什么是DDoS攻击? 拒绝服务(Denial-of-Service,DoS)攻击是一种针对某些服务可用性的攻击。 通过耗尽CPU、内存、带宽以及磁盘空间等系统资源,来阻止或削弱对网络、系统或应用程序的授权使用的行为。 如果攻击者采用单一…

动态权限有哪些

定位权限: ACCESS_FINE_LOCATION:精确位置ACCESS_COARSE_LOCATION:大致位置 相机权限: CAMERA:访问摄像头 存储权限: READ_EXTERNAL_STORAGE:读取外部存储WRITE_EXTERNAL_STORAGE:…

springboot集成easypoi

easypoi,主打的功能就是容易,通过简单的配置&#xff0c;就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出 pom导入依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-star…