何在前端JavaScript开发中使用ES新特性?babel是什么?.babelrc文件又是干什么用的?文件中的presets和plugins又是什么鬼?本文将解答上述疑问。
babel是一个JavaScript编译器
ES规范今年来更新较为频繁,近几个版本推出很多新的特性,而用户的浏览器版本众多,很多用户用的是老版本浏览器,老版本浏览器不支持ES新特(nodejs也存在同样问题,参见),babel就是用来让你可以使用ES新特性,又可以使代码运行在老版本浏览器上。
Babel 通过语法转换器支持最新版本的 JavaScript 。 语法转换插件允许你立刻使用新语法,无需等待浏览器支持。
解析-->转换-->生成代码
1.在构建工具中(以webpack为例)使用:
// 在webpack.config.js中增加babel-loader,如下所示 module: { rules: [ { test: /\.js$/, exclude: /node_modules/, loader: "babel-loader" } ] }
2.在babel-cli中使用
npm install -g babel-cli babel src -d lib // 将src中的代码转译并将生成的文件放到lib目录下 复制代码
babel的配置是要告诉babel工具使用哪些插件转译代码,主要作用于babel工作的第二阶段(转译)
babel工作前会从.babelrc文件读取配置,根据配置对JavaScript进行转译。
下面以.babelrc文件的配置方式为例介绍,配置项主要有两个,presets,plugins;
{ "presets": ["env"], "plugins": ["babel-plugin-transform-object-assign"] }
plugins配置具体插件,而对于ES新特性需要配置的插件多达几十个,如果一一配置就太麻烦来,于是babel给我们提供一些插件集,插件集配置在presets配置项中,目前官方提供的插件集有:
其中 env(babel-preset-env)相当于 es2015 ,es2016 ,es2017 及最新版本。
4. stage-X
Stage-x preset 中的任何转换都是对未被批准为 JavaScript 版本一部分的语言的变化(如 es6 / es2015 ),其分为以下5各阶段:
Stage 0 - 稻草人: 只是一个想法,可能是 babel 插件。 Stage 1 - 提案: 初步尝试。 Stage 2 - 初稿: 完成初步规范。 Stage 3 - 候选: 完成规范和浏览器初步实现。 Stage 4 - 完成: 将被添加到下一年度发布。
上述配置的插件和插件集也是需要通过npm安装的
npm install babel-preset-env --save-dev npm install babel-plugin-transform-object-assign --save-dev
babel presets(转换插件集)配置
"presets": ["env"] // 默认将运行所有transfrom和集成所有的polyfill
也可以仅仅配置项目所支持浏览器所需的polyfill和transform。只编译所需的代码会使你的代码包更小。如下所示,该转换只支持每个浏览器最后两个版本和safari大于等于7的版本所需的polyfill和代码转换。
、行级标签转换为块级标签
转换为块级标签,各自独占一行,且可以设置宽高
代码:<a href="">我是a标签</a>
<a href="">我是a标签</a>
<a href="">我是a标签</a>
CSS :display:block;
width: 100px;
height: 30px;
border: 1px solid black;
在浏览器中的样式:
二、块级标签转换为行级标签
转化为行级标签,共同占一行,不能设置宽高
代码:<h3>我是块级标签</h3>
<h3>我是块级标签</h3>
<h3>我是块级标签</h3>
CSS:display: inline;
width: 200px;
height: 100px;
border: 1px solid red;
在浏览器中的样式:
三、转化为行内块级标签
能共占一行,而且可以设置各自的宽高
1.行级元素转化为行内块级元素
代码:<a class="a1" href="">我是a标签</a>
<a class="a2" href="">我是a标签</a>
CSS: a{ display:inline-block; border: 1px solid black; }
.a1{width: 100px; height: 30px; }
.a2{ width: 50px; height: 50px; }
在浏览器中的样式:
2.块级标签转化为行内块级标签
代码:<h3 class="h3_1">我是块级标签</h3>
<h3 class="h3_2">我是块级标签</h3>
CSS:h3{display: inline-block;border: 1px solid red;}
.h3_1{width: 100px;height: 100px;}
.h3_2{width: 200px;height: 50px;}
在浏览器中的样式:
四、display的另一个属性,可以将元素隐藏
display:none;
如果想了解更多块级标签和行内标签的属性,请关注,参看上一篇文章,有写的不对或不全面的地方,请大家多多指出。
排提示:本期内容所用软件为“Adobe Acrobat Pro DC 2019”
再看到喜欢的网页时,我们可能会想要收藏,也可能使用OneNote或者印象笔记转存这些网页。
而在碰到Acrobat之后,我们又多了另外一个选择。
将网页直接转存为PDF。
Acrobat将网页转存为PDF有两种方法。
下面我们来逐一介绍。
功能位置:工具 >> 创建PDF >> 网页
点击“创建PDF”工具,切换页面后,点击左侧的“网页”选项。
根据网页创建PDF
Acrobat提示我们输入一个URL地址,将某个网页链接复制到这里。
可以勾选“捕捉多层”,软件会展开更多选项。
转换网页参数
参数设置完毕,点击“创建”即可。
等待数秒,Acrobat会自动打开转换成功的PDF。
软件在识别网页CSS样式时,会存在一定的缺陷,但网页主体内容可以被完美转换。
转换效果
安装Acrobat DC时,会自动为IE、Google Chrome 和Firefox这三款浏览器添加“Adoba Arcobat”这款插件。(限Windows系统)
下面以Firefox浏览器为例,利用插件将某个网页转存为PDF。
首先在右上角的选项菜单中找到“附件组件”。
附件组件
确保“Adoba Arcobat”插件为启用状态。
启用Adobe Acrobat
这时在工具栏就可以看到插件图标了。
通过浏览器随便访问一个网站,在右键菜单中就会发现“Adobe Acrobat” >> “将网页转换为Adobe PDF”选项。
点击后,只需要选择一个存储路径,等待数秒转换即可完成。
不需要人为再次介入,要比第一种方法更加高效。
这种方式有点类似于“网页内容转存至云笔记”。
一册君在测试知乎的网页时,有的内容可以转存成功,而有的不可以。
希望大家留意到这一点。
今天,我们介绍了使用“Acrobat”转存网页为PDF文件的方法。
以上。
如果你喜欢“一册笔记”,请记得分享,点赞和关注。
未完待续。。。
*请认真填写需求信息,我们会在24小时内与您取得联系。