神奇的babel

2024-09-04 21:18
文章标签 神奇 babel

本文主要是介绍神奇的babel,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2015年,ECMA推出es6,在es5的基础上添加了各种人性化开发的新特性,详见es2015

让人头疼的是当下主流浏览器的JS引擎并不识别es6语法,所以我们需要将es6的语法翻译成es5的形式再提交给js引擎执行。

那有没有好的工具来实现两种标准之间的转换呢,有,babel

好,既然用到babel,那么第一步肯定要在项目中安装babel。安装的方法可参照点击打开链接

npm install --save-dev babel-loader babel-core
babel安装成功后,如何在项目中使用呢?假设我们有待打包的js文件——app.js


很明先我们用到了es6的新特性,我们要做的就是将这些新特性转换成js引擎识别的语法并执行成功

好,在进阶webpack 中介绍了webpack生成新页面并自动引入打包后的js文件,那我们就将app.js打包后放入新生成的html文件中执行,显然,目前是无法执行的,因为我们并没有配置任何babel相关的参数。如何配置参数呢?

打开点击打开链接

打开latest后,看到latest安装方法

npm install --save-dev babel-cli babel-preset-latest//babel-cli不是必需
具体的安装过程就不展示了,接下来我们完善webpack-config-js配置文件,在这之前,先介绍一下loader参数—— using loaders,同时推荐一篇不错的中文博文 点击打开链接

在这里对于loader的具体介绍就不展开说了,直接贴出参数配置规范

module: {loaders: [{ test: /\.jade$/, loader: "jade" },// => "jade" loader is used for ".jade" files{ test: /\.css$/, loader: "style!css" },// => "style" and "css" loader is used for ".css" files// Alternative syntax:{ test: /\.css$/, loaders: ["style", "css"] },]
}
好,我们应用到webpack-config-js配置文件中


配置文件写好后我们运行webpack

此时我们看到运行时间为9656ms,将近10秒的时间,我们显然是无法忍受的,那么导致打包时间变慢的原因是什么呢?

我们回过头来再看loaders里面的参数,参考官方文档

我用粗体框出来的exclude和include一直没有用到,它们是干嘛用的呢

简单来说include就是指定loaders的处理范围,比如一个文件夹,exclude就是制定排除范围,loaders会自动忽略排除范围

好,我们来用下include,缩小loaders的处理范围

见证奇迹的时刻,运行webpack


快了十几倍有木有!!!

好了,既然效率问题解决了,我们看最后的结果吧,是否达到了我们一开始的愿望,将含有es6语法的js执行出来,开始的时候我们是在app.js中用import引入和一个layer.js并直接将其打印出来,这里我们看打印的结果

好,如愿以偿了

关于babel的讨论先说这么多,日后再深入






这篇关于神奇的babel的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1137050

相关文章

Redis 管道的神奇力量

今天我们要来探索一个 Redis 中非常强大且实用的特性——管道(Pipeline)。如果你想让你的 Redis 操作更加高效,那么这篇文章绝对值得一读。 一、Redis 管道是什么 Redis 管道是一种在客户端和服务器之间批量执行命令的技术。它允许客户端将多个命令一次性发送到服务器,而不是逐个发送并等待每个命令的响应。服务器会按照顺序执行这些命令,并将所有命令的响应一次性返回给客户端。

入门篇:神奇的Annotation

涅槃1992 关注 2016.12.25 23:41* 字数 4964 阅读 1059评论 3喜欢 29 前面写了Android 开发:由模块化到组件化(一),很多小伙伴来问怎么没有Demo啊?之所以没有立刻放demo的原因在还有许多技术点没说完. 今天我们就来细细评味Java当中Annotation,也就是我们常说的注解. 本文按照以下顺序进行:元数据->元注解->运行时注解->编译时

【ReactJS】困惑于text/babel与browser.js还是babel.js?

使用JSX   使用JSX,可以极大的简化React元素的创建,JSX抽象化了React.createElement()函数的使用,其语法风格类似于HTML语法风格。对比如下代码可以让你更好的理解这一点。 // 使用React.createElement()return React.createElement('div',null,'Hello',this.props.name);//使用J

一个人就能干一个团队剪辑工作?云微客就是这么神奇

你知道拍摄、剪辑一条视频需要花费多长时间吗?半个小时?还是一个小时呢?如果我想一天发布上百条视频,你觉得可能吗?很显然,仅凭个人是很难办到的,那么就需要借助工具,而云微客AI批量剪辑系统正好可以解决这个难题。 在当下这个短视频风靡的时代,不管是企业还是个人创作者们都需要借助各种工具和系统来提升创作内容的生产效率和传播效果。而云微客AI批量剪辑系统凭借着批量剪辑的功能,为创作者带来了很大的

React第四章(babel)

Babel 什么是Babel? Babel 是一个 JavaScript 编译器,提供了JavaScript的编译过程,能够将源代码转换为目标代码。 AST -> Transform -> Generate 官网 https://babeljs.io/ 查看AST https://astexplorer.net/ Babel所有的包 https://babeljs.io/docs/

神奇的android广播

最近用了android的广播,个人感觉非常好用: 首先在你要接收的地方注册一个: context.registerReceiver(myReceiver, new IntentFilter("com.shic.action.d")); 然后就是定义注册的这个,在接收到广播后执行的操作: BroadcastReceiver myReceiver = new BroadcastRecei

探索PDF的奥秘:pdfrw库的神奇之旅

文章目录 探索PDF的奥秘:pdfrw库的神奇之旅背景:为何选择pdfrw?pdfrw是什么?如何安装pdfrw?五个简单的库函数使用方法场景应用:pdfrw在实际工作中的应用常见问题与解决方案总结 探索PDF的奥秘:pdfrw库的神奇之旅 背景:为何选择pdfrw? 在数据处理的世界中,PDF文件因其格式的稳定性和广泛兼容性而备受青睐。然而,处理PDF文件往往需要专

【Linux】Linux命令行大冒险:寻找、搜索与压缩的神奇之旅

欢迎来到 CILMY23 的博客 🏆本篇主题为:Linux命令行大冒险:寻找、搜索与压缩的神奇之旅 🏆个人主页:CILMY23-CSDN博客 🏆系列专栏:Python | C++ | C语言 | 数据结构与算法 | 贪心算法 | Linux | 算法专题 | 代码训练营 🏆感谢观看,支持的可以给个一键三连,点赞收藏+评论。如果你觉得有帮助,还可以点点关注 前言: 我们也

babel-preset-stage-2

http://www.cnblogs.com/chris-oil/p/5717544.html

探索Python数据持久化的秘密:ZODB库的神奇之旅

文章目录 探索Python数据持久化的秘密:ZODB库的神奇之旅背景ZODB是什么?如何安装ZODB?简单库函数使用方法场景应用常见Bug及解决方案总结 探索Python数据持久化的秘密:ZODB库的神奇之旅 背景 在Python的广阔世界中,数据持久化是一个不可或缺的需求。无论是为了保存应用程序的状态,还是为了在多个会话之间共享数据,我们都需要一种可靠的方法来存储和