何在前端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小時內與您取得聯系。