使用webpack將ES6轉(zhuǎn)化ES5的實(shí)現(xiàn)方法
babel使用
打開babel官網(wǎng),按教程安裝babel
安裝
npm install --save-dev babel-loader @babel/core @babel/preset-env
配置rules
module: { rules: [ { test: /\.js$/, exclude: /node_modules/, loader: "babel-loader" } ] }
生成 .babelrc文件
{ "presets": ["@babel/preset-env"] }
此時(shí)webpack已經(jīng)能正確的將高版本的js語法轉(zhuǎn)為低版本的語法,但是對(duì)于新增的api并不會(huì)轉(zhuǎn)化,如promise。這時(shí)我們就需要其他的插件
使用polyfill插件,對(duì)于babel=>7.4.0該方法棄用
安裝
npm install --save @babel/polyfill
修改 .babelrc
{ "presets": [ [ "@babel/preset-env", { "useBuiltIns":"usage" // 只轉(zhuǎn)化使用了的API } ] ] }
使用 在需要轉(zhuǎn)換的文件里引入polyfill
import "@babel/polyfill";
@babel/polyfill 和 @babel/preset-env 的關(guān)系
@babel/preset-env 中與 @babel/polyfill 的相關(guān)參數(shù)有 targets 和 useBuiltIns 兩個(gè)
targets: 支持的目標(biāo)瀏覽器的列表
useBuiltIns: 參數(shù)有 “entry”、”usage”、false 三個(gè)值。默認(rèn)值是false,此參數(shù)決定了babel打包時(shí)如何處理@babel/polyfilll 語句。
“entry”: 會(huì)將文件中 import‘@babel/polyfilll'語句 結(jié)合 targets ,轉(zhuǎn)換為一系列引入語句,去掉目標(biāo)瀏覽器已支持的polyfilll 模塊,不管代碼里有沒有用到,只要目標(biāo)瀏覽器不支持都會(huì)引入對(duì)應(yīng)的polyfilll 模塊。
“usage”: 不需要手動(dòng)在代碼里寫import‘@babel/polyfilll',打包時(shí)會(huì)自動(dòng)根據(jù)實(shí)際代碼的使用情況,結(jié)合 targets 引入代碼里實(shí)際用到 部分 polyfilll 模塊
false: 對(duì) import‘@babel/polyfilll'不作任何處理,也不會(huì)自動(dòng)引入 polyfilll 模塊
安裝
npm install --save-dev @babel/plugin-transform-runtime
修改 .babelrc
{ "presets": [ [ "@babel/preset-env" ] ], "plugins": [ [ "@babel/plugin-transform-runtime", { "absoluteRuntime": false, "corejs": 3, "helpers": true, "regenerator": true, "useESModules": false } ] ] }
注意上面corejs設(shè)置項(xiàng),不同的值需要不同的依賴包
corejs的值 | 需要安裝的依賴包 |
---|---|
false | npm install --save @babel/runtim |
2 | npm install --save @babel/runtime-corejs2 |
3 | npm install --save @babel/runtime-corejs3 |
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
jQuery實(shí)現(xiàn)手風(fēng)琴特效
這篇文章主要為大家詳細(xì)介紹了前端js實(shí)現(xiàn)手風(fēng)琴效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-01-01JavaScript中常用的3種彈窗(警告框、確認(rèn)框、提示框)
JavaScript提供了幾種常用的彈窗方法,用于與用戶進(jìn)行交互或顯示提示消息,這篇文章主要給大家介紹了關(guān)于JavaScript中常用的3種彈窗的相關(guān)資料,分別包括警告框、確認(rèn)框、提示框,需要的朋友可以參考下2023-09-09JavaScript函數(shù)定義方法實(shí)例詳解
這篇文章主要介紹了JavaScript函數(shù)定義方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了javascript函數(shù)的聲明、定義、調(diào)用等原理與常見操作技巧,需要的朋友可以參考下2019-03-03僅IE9/10同時(shí)支持script元素的onload和onreadystatechange事件分析
測試結(jié)果可以看出,IE9后已經(jīng)開始支持script的onload事件了。一直以來我們判斷js文件是否已經(jīng)加載完成就是用以上的兩個(gè)事件。2011-04-04js點(diǎn)亮星星評(píng)分并獲取參數(shù)的js代碼
點(diǎn)亮星星評(píng)分后,點(diǎn)擊按鈕,立即獲得分?jǐn)?shù)參數(shù)值,方便不想使用ajax傳參的朋友2014-07-07微信小程序?qū)崿F(xiàn)下載進(jìn)度條的方法
本篇文章主要介紹了微信小程序?qū)崿F(xiàn)下載進(jìn)度條的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12javascript中call,apply,callee,caller用法實(shí)例分析
這篇文章主要介紹了javascript中call,apply,callee,caller用法,結(jié)合實(shí)例形式分析了javascript中call,apply,callee,caller功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-07-07