首页 > 其他分享 >20223.05.12 - 可选链操作符的Ployfill

20223.05.12 - 可选链操作符的Ployfill

时间:2023-05-12 19:56:04浏览次数:39  
标签:插件 12 20223.05 chaining plugin babel 代码 可选链 optional

可选链操作符是ES2020的新特性,如果要在webpack版本低于5.20的vue2项目中使用它,需要对babel进行配置。

首先,需要安装 @babel/plugin-proposal-optional-chaining 插件:

npm install --save-dev @babel/plugin-proposal-optional-chaining

然后,在 .babelrc 或 babel.config.js 文件中添加如下配置:

{
  "plugins": ["@babel/plugin-proposal-optional-chaining"]
}

这样就可以在 vue2 项目中使用可选链操作符了。注意,这个插件是 babel 7.x 版本的,如果你的项目使用 babel 6.x 版本,需要安装 @babel/plugin-syntax-optional-chaining 插件,然后在 .babelrc 文件中添加如下配置:

{
  "plugins": ["@babel/plugin-syntax-optional-chaining"]
}

带入项目中

​ 应该把 @babel/plugin-proposal-optional-chaining 插件放在数组的最后一个位置,像这样:

module.exports = {
  presets: ['@vue/app'],
  plugins: [
    [
      'component',
      {
        libraryName: 'element-ui',
        // styleLibraryName: '~src/styles/theme',
        style: false
      }
    ],
    "@babel/plugin-proposal-optional-chaining"
  ]
};

这样配置,@babel/plugin-proposal-optional-chaining 插件会在其他插件执行完后再进行代码转换,确保能够正确解析项目中的代码。

Polyfill垫片对项目的影响

​ Polyfill 对打包后的代码大小有一定的影响,但它不会直接影响打包后的代码的运行速度。因为 Polyfill 主要是在运行时对代码进行转换,添加一些额外的代码来模拟缺失的新特性,而不是在编译时对代码进行转换。所以,Polyfill 只会增加代码的体积,不会影响代码的运行速度。

但是,如果代码体积过大,也会对打包后的代码的运行速度产生影响。因为过大的代码体积会增加代码加载的时间,影响页面的加载速度。所以,为了确保打包后的代码能够快速加载和运行,需要对代码进行优化,减小代码体积。

综上所述,Polyfill 对打包后的代码的运行速度影响较小,但它会增加代码的体积,所以还需要对代码进行优化,以确保打包后的代码能够快速加载和运行。

垫片打包后的效果

function replaceyihuName(e) {
  if (!e) return '';
  var t =
    null === e || void 0 === e
      ? void 0
      : e.replace('(1户)', '');
  return t;
};

void 0 是 JavaScript 中的一种常见用法,它的作用是返回 undefined。在 Webpack 打包过程中,可能会出现 void 0 的代码,这通常是由于 JavaScript 代码中的一些语法或者代码压缩工具导致的。

在一些情况下,void 0 可以用来代替 undefined 关键字,因为 undefined 可以被重定义,而 void 关键字保证了返回值一定是 undefined

如果你对于这个问题还有疑问,可以提供更多的代码和上下文,我可以帮你更好地理解这个问题。

标签:插件,12,20223.05,chaining,plugin,babel,代码,可选链,optional
From: https://www.cnblogs.com/yehuda/p/17396163.html

相关文章

  • 5.12校赛记录
    题意给定\(n\)个取值为实数的变量\(x_1,x_2,\dots,x_n\),其中\(x_i\)在\([l_i,r_i)\)之间均匀随机。求\(\lfloorx_1+x_2+\dots+x_n\rfloor^k\)的期望取值。对\(998244353\)取模。\(1\len\le10^3,1\lek\le20,0\lel_i<r_i<998244353\)。题解实数十分麻烦。这题如......
  • 5.12绩效第三名说明
    我们团队三个人分工明确,效率显著,在团队中都发挥着不可或缺的作用。例如本人主要负责音频格式转换板块儿方面的功能实现以及绘制web页面,进行代码结构规范性处理,还有在展示项目阶段作为代表发言,和接下来的摆摊主要发言人等工作。作为本团队唯一使用idea编程的队员,了解servlet三层......
  • 5.12总结
    packagecom.mf.jdbc;importcom.mysql.jdbc.Driver;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.Statement;/**JDBC的快速入门*/publicclassJDBCDemo{publicstaticvoidmain(String[]args)throwsException{//1.注册驱动Cla......
  • 230512 // 数论
    夺,夺少?哦,85pts,小让一手。A.征兵http://222.180.160.110:1024/contest/3574/problem/1GM说,怕久了不打最小生成树我们给忘了。笑话,就算退役十年我也不一定能忘了Kruskal,就算在役十年我也不一定能记住Prim。就一板板题,没什么好说的。#defineintlonglongnamespaceXSC......
  • 西门子PLC S7-1200程序实例,版本博图V15及以上,内容包
    西门子PLCS7-1200程序实例,版本博图V15及以上,内容包括1,西门子1200与安川机器人TCP/IP通讯,包含机器人GSD文件;2,西门子1200控制6轴伺服电机,四台台脉冲控制台达B2伺服,两台PN通讯控制西门子V90伺服电机;3,两台西门子1200开放式通讯交互数据联动;4,与4台位移传感器modbus485轮询读取参数;ID:5......
  • 西门子1200伺服步进FB块程序 程序内含两个FB,一个是scl写的,一个
    西门子1200伺服步进FB块程序程序内含两个FB,一个是scl写的,一个是梯形图,可以多轴多次调用,中文注释详细。真实可用,经过在专用设备真实调试运行,可以直接应用到实际项目中,提供,包成功此FB块适合PTO脉冲和PN网口模式,适合西门子伺服和第三方伺服,以及步进电机已经成功应用的有西门子伺服s12......
  • 西门子PLC1200伺服库卡机器人12工位博图程序例程,组态采用昆仑通态触摸屏,详细中文注释,P
    西门子PLC1200伺服库卡机器人12工位博图程序例程,组态采用昆仑通态触摸屏,详细中文注释,PDF电路图参考,设备操作说明,物料BOM,PLC和一台库卡机器人profinet通讯PTO模式控制松下伺服一共36路模拟量12路模拟量压力检测12路模拟量位置检测12路模拟量压力输出连接26个温控器485总线通......
  • 1218:取石子游戏
     #include<iostream>#include<cstdio>#include<cstring>usingnamespacestd;booljs(inta,intb){if(a<b)swap(a,b);if(a%b==0)returntrue;for(intk=a/b;k>=1;k--)if(!js((a-b*k),b))returntrue;ret......
  • 西门子1200PLC大型项目包膜机程序 威纶通触摸屏,PTO控制20多个
    西门子1200PLC大型项目包膜机程序威纶通触摸屏,PTO控制20多个轴,100多个气缸,控制2台机器人。5台PLC智能IO通讯,ModbusRTU通讯轮询,完整威纶通触摸屏程序,5台西门子1200PLC+一台1500PLC,是学习西门子PLC通信、伺服、复杂程序如何编写的好帮手,另外附带威纶通触摸屏程序全站式整厂自动化......
  • 西门子1200灌装线全线程序,程序分为两部分,一部分为实际应用程序,一部分为仿真程序,程序包
    西门子1200灌装线全线程序,程序分为两部分,一部分为实际应用程序,一部分为仿真程序,程序包含PLC程序和触摸屏程序,内容包含手动,自动运行,模拟量处理,数据统计及存储,故障处理,急停处理,报警等相关程序,程序注释清晰,非常适合初学者学习,该程序支持博图13及以上版本ID:6719655443826436......