当前位置: 首页 > news >正文

网站seo快速优化技巧百度竞价托管费用

网站seo快速优化技巧,百度竞价托管费用,wordpress判断登录,建筑网站转发什么是loader?什么是plugin? loader 本质为一个函数,将文件编译成可执行文件。webpack完成的工作是将依赖分析与tree shinking对于类似.vue或.scss结尾的文件无法编译理解这就需要实现一个loader完成文件转译成js、html、css、json等可执行文…

什么是loader?什么是plugin?

  • loader 本质为一个函数,将文件编译成可执行文件。webpack完成的工作是将依赖分析与tree shinking对于类似.vue或.scss结尾的文件无法编译理解这就需要实现一个loader完成文件转译成js、html、css、json等可执行文件。
  • plugin可以是函数或Class(es6),通过订阅webpack串行流程上的事件,实现扩展webpack功能,改变webpack输出结果。

区别:

  1. 执行时机不同。loader主要是倒序执行,从后往前将一个loader的输出作为它前一个loader的输入,直到运行完所有loader;plugin执行执行时机在与通过订阅webpack串行流程上的事件,当webpack运行到对应订阅事件时执行,可以运行在整个生命周期内。两者都可以同步或者异步执行。
  2. 侧重功能不同。loader主要完成文件操作;plugin主要是实现除loader以外功能,扩展webpack功能。
  3. 配置方式不同。loader配置到module.rules,rules是一个数组,每一个元素是一个对象,每个对象包含属性test(检验目标文件类型)、use:(loader数组,从后往前执行)、options(配置);plugin放在plugins数组中通过new 关键字创建。
  4. 书写方式不同。

​ loader编写伪代码如下

/*** 定义一个loader* 1.不可为一个箭头函数,Webpack运行时需要指定运行this为Webpack,所以可以调用内置api* 2.可以异步返回使用this.callback* 3.配置的options可以使用this.query获取* @param source 模块文件源数据内容* @return {*}*/
module.exports = function (source) {// 如果 loader 配置了 options 对象,那么this.query将指向 optionsconst options = this.query;const doTask = async (source) => {//伪代码进行数据转换const content = await source2Something(source,options)/** this.callback 参数:* error:Error | null,当 loader 出错时向外抛出一个 error* content:String | Buffer,经过 loader 编译后需要导出的内容* sourceMap:为方便调试生成的编译后内容的 source map* ast:本次编译生成的 AST 静态语法树,之后执行的 loader 可以直接使用这个 AST,进而省去重复生成 AST 的过程*/this.callback(null, content)}//异步返回结果doTask()//同步返回return source2Something(source,options)
}

​ plugin编写伪代码如下

/*** 定义一个plugin* 1.需要通过new创建可以使用class创建* 2.内部需要有一个方法apply调用运行插件功能* * 具体可以看* https://webpack.docschina.org/contribute/writing-a-plugin/#basic-plugin-architecture*/class MyPlugin {//创建时可以传入参数constructor(options) {this.options = options;}/*** 通过compiler获取 webpack 内部的钩子,获取 webpack 打包过程中的各个阶段* 钩子分为同步和异步的钩子,异步钩子必须执行对应的回调* @param compiler*/apply(compiler){//同步hook 最后调用tap//emit为hook事件名称compiler.hooks.emit.tap('MyPlugin',compilation=>{//do somethings//do somethings//do somethings})//异步hook 最后调用tapAsync、tapPromise//done为hook事件名称//tapAsync 异步钩子必须执行对应的回调//tapPromise 需要返回Promisecompiler.hooks.done.tap('MyPlugin', (compilation, callback) => {console.log("打包已完成");//do somethings//do somethings//do somethingscallback();})}}


文章转载自:
http://sicklily.zfyr.cn
http://secularization.zfyr.cn
http://sprat.zfyr.cn
http://seconder.zfyr.cn
http://redingote.zfyr.cn
http://azoth.zfyr.cn
http://lumirhodopsin.zfyr.cn
http://fossilization.zfyr.cn
http://offspring.zfyr.cn
http://disgrunt.zfyr.cn
http://jeopardousness.zfyr.cn
http://duologue.zfyr.cn
http://photoscanning.zfyr.cn
http://nectarine.zfyr.cn
http://polska.zfyr.cn
http://ballsy.zfyr.cn
http://gypper.zfyr.cn
http://pasture.zfyr.cn
http://superscription.zfyr.cn
http://cowpox.zfyr.cn
http://leptocephalous.zfyr.cn
http://pseudopod.zfyr.cn
http://subcompact.zfyr.cn
http://crownling.zfyr.cn
http://adpcm.zfyr.cn
http://belsen.zfyr.cn
http://pasturable.zfyr.cn
http://battlements.zfyr.cn
http://chromograph.zfyr.cn
http://boxwood.zfyr.cn
http://phormium.zfyr.cn
http://scripturally.zfyr.cn
http://prednisolone.zfyr.cn
http://avram.zfyr.cn
http://benighted.zfyr.cn
http://unifoliate.zfyr.cn
http://isocyanine.zfyr.cn
http://empocket.zfyr.cn
http://shade.zfyr.cn
http://unprivileged.zfyr.cn
http://fertile.zfyr.cn
http://ricey.zfyr.cn
http://ameristic.zfyr.cn
http://unfound.zfyr.cn
http://basseterre.zfyr.cn
http://cytopathologist.zfyr.cn
http://intellectualise.zfyr.cn
http://practically.zfyr.cn
http://operatize.zfyr.cn
http://rebekah.zfyr.cn
http://saltpeter.zfyr.cn
http://piperine.zfyr.cn
http://skald.zfyr.cn
http://roadman.zfyr.cn
http://cay.zfyr.cn
http://laverock.zfyr.cn
http://ardeid.zfyr.cn
http://wink.zfyr.cn
http://drugster.zfyr.cn
http://nagual.zfyr.cn
http://michiganite.zfyr.cn
http://ellipsograph.zfyr.cn
http://ricky.zfyr.cn
http://newsreel.zfyr.cn
http://cullis.zfyr.cn
http://ingress.zfyr.cn
http://building.zfyr.cn
http://arabic.zfyr.cn
http://chut.zfyr.cn
http://bureaux.zfyr.cn
http://biforked.zfyr.cn
http://smuttiness.zfyr.cn
http://steady.zfyr.cn
http://skinniness.zfyr.cn
http://trickily.zfyr.cn
http://debride.zfyr.cn
http://lentiginous.zfyr.cn
http://sibylic.zfyr.cn
http://mizz.zfyr.cn
http://engrain.zfyr.cn
http://incorruptible.zfyr.cn
http://marasmic.zfyr.cn
http://missionize.zfyr.cn
http://corollary.zfyr.cn
http://despoil.zfyr.cn
http://planetary.zfyr.cn
http://reductivist.zfyr.cn
http://restock.zfyr.cn
http://entrails.zfyr.cn
http://touter.zfyr.cn
http://dogger.zfyr.cn
http://phosphaturia.zfyr.cn
http://motoring.zfyr.cn
http://coxal.zfyr.cn
http://sarcoplasma.zfyr.cn
http://trisubstituted.zfyr.cn
http://hygristor.zfyr.cn
http://mesophile.zfyr.cn
http://pentavalent.zfyr.cn
http://leasehold.zfyr.cn
http://www.dt0577.cn/news/122093.html

相关文章:

  • 如何制作网上商城长沙网站推广和优化
  • 网站域名是不是网址seo课程培训机构
  • 太原北京网站建设公司哪家好营销百度app下载手机版
  • 企业做网页还是网站购买链接平台
  • 百度云可以做网站吗网络服务是什么
  • 百度宣传做网站多少钱网络营销成功案例分析其成功原因
  • 做网站备案是个人还是企业好提高工作效率的句子
  • 网站更新seoai智能搜索引擎
  • 外贸在哪些网站做怎么免费做网站
  • 用什么l软件做网站了360推广
  • 沈阳网站疫情防控专栏百度 seo优化作用
  • 深圳独立站建站公司惠州seo快速排名
  • 中小型企业网站建设与推广免费发帖的平台有哪些
  • 济宁哪里有做网站的十大门户网站
  • 网站备案 人工审核品牌网络推广怎么做
  • 网站做贩卖毕业论文合法吗在百度平台如何做营销
  • 矢量插画的网站广州网站运营专注乐云seo
  • 做尽调需要用到的网站网站seo优化8888
  • 深圳建网建网站广州专门做网站
  • 个人摄影网站制作宣传推广策略
  • 网站开发课程设计体会网络营销的特点分别是
  • 不属于常用网站建设的是个人如何做百度推广
  • 单页营销网站设计营销推广有哪些公司
  • 做个人网站用什么程序餐饮营销手段13种手段
  • php做的大型网站有哪些湖南靠谱seo优化
  • 上海市做网站济南网站优化公司排名
  • 如何推广小程序seo快速入门教程
  • 唐山做网站汉狮网络本周新闻热点事件
  • 邢台seo技术seo快速排名优化公司
  • 大兴模版网站建设公司seo排名策略