版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
np操作一:npmrunbuildp操作二:通过liveserver或者直接通过浏览器,打开index.htmln这个过程经常操作会影响我们的开发效率,我们希望可以做到,当文件发生变化时,可以自动的完成编译和展示n为了完成自动编译 ck提供了几种可选的方式p ckwatchp p
ckn ck给我们提供了watch模式p在该模式下 ck依赖图中的所有文件,只要有一个发生了更新,那么代码将被重新编译p我们不需要手动去运行npmrunbuildn如何开启watchp方式一:在导出的配置中,添加watch:p方式二:在启动 令中,添加--watch的标识n这里我 二,在package.json的scripts中添加一个watch
n上面的方式可 到文件的变化,但是事实上它本身是没有自动刷新浏览器的功能的p当然,目前我们可以在VSCode中使用live-serverp但是,我们希望在不使用live-server的情况下,可以具备livereloading(实时重新加载)n安装 npmnpminstall ck-dev-server-n修改配置文件,告知devserver,n ck-dev-server在编译之后不会写入到任何输出文件,而是将bundle文件保留在内存p事实上 ck-dev-server使用了一个库叫memfs(memory-fs ck自己写的
n什么是HMRpHMR的全称是HotModule cement,翻译为模块热替换p模块热替换是指在应用程序运行过程中,替换、添加、删除模块,而无需重新刷新整个页面nHMRp不重新加载整个页面,这样可以保留某些应用程序的状态不丢失p只更新需要变化的内容,节省开发的时间p修改了css、js源代码,会立即在浏览器更新,相当于直接在浏览器的devtoolsn如何使用HMRp默认情况下 ck-dev-server已经支持HMR,我们只需要开启即可p在不开启HMR的情况下,当我们修改了源代码之后,整个页面会自动刷新,使用的是live
开启n修改 ck的配置nn但是你会发现,p这是因为我们需要去指定哪些模块发生更新时,进行
框架的n有一个问题:在开发其他项目时,我们是否需要经常手动去写入 et相关的API呢p比如开发Vue、React项目,我们修改了组件,希望进行热更新,这个时候应该如何去操作p事实上社区已经针对这些有很 解决方案了p比如vue开发中,我们使用vue-loader,此loader支持vue组件的HMR,p比如react开发中,有ReactHotLoader,实时调整react组件(目前React n接下来我们来演示一下Vue实现一下HMR
n那么HMRp ck-dev-server会创建两个服务:提供静态资源的服务(express)和Socket服务pexpressserver负责直接提供静态资源的服务(打包后的资源直接被浏览器请求和解析nHMRSocketServer,是一个socketp长连接有一个最好的好处是建立连接后双方可以通信(服务器可以直接发送文件到客户端p当服务 到对应的模块发生变化时,会生成两个文件.json(manifest文件)和.js文件(updatep通过长连接,可以直接将这两个文件主动发送给客户端(浏览器p浏览器拿到两个新的文件后,通过HMRruntime机制,加载这两个文件,并且针对修改的模块进行更新
nhostp默认值是p如果希望其他地方也可 ,可以设置为nlocalhost和plocalhost:本质上是一 ,通常情况下会被解析成p:回环地址(LoopBackAddress),üüü比如我 时,在同一个网段下的主机中,通过ip地址是不 的p IPV4ü比如我 时,在同一个网段下的主机中,通过ip地址是可 的
nport设 的端口,默认情况下是nopenp默认值是false,设置为truep也可以设置为类似 Chrome等值ncompress是否为静态文件开启gzipp默认值是false,可以设置为 是我们开发中非常常用的一个配置选项,它的目的设 来解决跨 的问题p比如我们的一个api请求是 ,但是本地启动服务器的 ,这个时候发送网络请求就会出现跨域的问题;p那么我们可以将请求先发送到一个 服务器, 服务器和API服务器没有跨域的问题,就可以解决我们的跨域问题了;n我们可以进行如下的设置:ptarget:表示的 到的目标地址,比如/api-hy/moment会 hy/momentppathRewrite:默认情况下,我们的/api-hy也会被写入到URL中,如果希望删除,可以使用pathRewritepsecure:默认情况下不接收转发到https的服务器上,如果希望支持,可以设置为false;pchangeOrigin:它表示是否更新 后请求的headers中host地址;
n这个changeOrigin 说的非常模糊,通过查看源码我发现其实是要修 请求中headers中的host属性:p因为我们真实的请求,其实是需要通 来请求的p但是因为使用了代码,默认情况下它的值 p如果我们需要修改,那么可以将changeOrigin设置为true即可;
nhistoryApiFallback是开发中一个非常常见的属性,它主要的作用是解决SPA页面在路由跳转之后,进行页面刷nboolean值:默认是p如果设置为true,那么在刷新时,返回404错误时,会自动返回index.html的内容;nobject类型的值,可以配置rewrites属性(了解p可以配置fromn事实上devServer中实现historyApiFallback功能是通过connect-history-api-fallbackp可以查看connect-history-api-fallback
nresolvep在开发中我们会有各种各样的模块依赖,这些模块可能来自于自己编写的代码,也可能来自 库presolve可以帮助 ck从每个require/import语句中,找到需要引入到合适的模块代码p ck使用enhanced-resolven cknpnp在这种情况下,使用import或require的资源文件所处 ,被认为是上下 p在import/requirenp在resolve.modules中指定的所 检索模块 默认值是['node_modules'],所以默认会从node_modulesp我们可以通过设置别名的方式来替换初识模块路径,具体后面讲解alias
npp否则,将使用resolve.extensionsnp会在文件夹中根据resolve.mainFilesüresolve.mainFiles的默认值是ü再根据resolve.extensions
nextensionsp默认值是['.wasm','.mjs','.js','.p所以如果我们代码中想要添加加载.vue或者jsx或者ts等文件时 须自己写上扩展名n另一个非常好用的功能是配置别名p特别是当我们项目 结构比较深的时候,或者一个文件的路径可能需要../../../这种路径片段p
n目前我们所有的 ck配置信息都是放到一个配置文件中的 p当配置越来越多时,这个文件会变得越来越不容 p并且某些配置是在开发环境需要使用的,某些配置是在生成环境需要使用的,当然某些配置是在开发和生成环p所以,我们最好对配置进行划分,方便我 和管理npp方式二:使用相同的一 配置文件,通过设置参数来区分它们
n我们之前编写 文件的规则是这样的:./src/index.js,但是如果我们的配置文件所在的位置变成了config 我们是否应该变成../src/index.js呢?p如果我们这样编写,会发现是报错的,依然要写成p这是因 文件其实是和另一个属性时有关的ncontext的作用是用于解 (entrypoint)和加载器 说法:默认是当前路径(但是经过我测试,默认应该是 ck的启 p
n这里我们创建三个文件: m.conf.js ck.dev.conf.jsp d.conf.jsn
VueCLIn什么是Vuep我们前面学习了如何通过w p所以在真实开发中,我们通常会使用脚手架来创建一个项目,Vue的项目我们使用的就是VuepnVue的脚手架就是Vue mand-LineInterface,翻译为命令行界面p我们可以通过CLIpVueCLI已经内置了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025 奇妙的天气预报作文课件
- 2025 好玩的排球发球技巧进阶作文课件
- 交通局上半年工作总结及下半年计划(2篇)
- 某乡某年上半年工作总结及下半年工作思路(2篇)
- 数字化赋能:中沙社区财务报销系统的创新构建与实践
- 数字化赋能健康:居民健康与慢性病管理信息系统的设计与实践
- 数字化浪潮下资金结算系统的创新设计与高效实现路径探究
- 数字化浪潮下协鑫集团财务共享服务中心的转型与优化策略
- 数字化浪潮下中国旅游主管部门官方微博营销的破局与革新
- 2025 奇妙的光影艺术作文课件
- 战伤换药技术课件
- 血透患者低血压护理查房
- 洗涤红细胞输注规范与临床应用
- 2025年软件评测师考试详细试题及答案解析
- 房屋赠予女儿协议书
- 检察院相关试题及答案
- 《激光雷达技术概述》课件
- 学校广告制作合同协议
- GB/T 43982.11-2025地下供水管网非开挖修复用塑料管道系统第11部分:软管穿插内衬法
- 《温度传感器选型》课件
- 糖尿病酮症酸中毒纠正后-静脉胰岛素输注向皮下注射的转换技巧
评论
0/150
提交评论