php实现把es6转为es5,使用webpack将ES6转化ES5的实现方法
babel使用
打開babel官網,按教程安裝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"]
}
此時webpack已經能正確的將高版本的js語法轉為低版本的語法,但是對于新增的api并不會轉化,如promise。這時我們就需要其他的插件
使用polyfill插件,對于babel=>7.4.0該方法棄用
安裝
npm install --save @babel/polyfill
修改 .babelrc
{
"presets": [
[
"@babel/preset-env",
{
"useBuiltIns":"usage" // 只轉化使用了的API
}
]
]
}
使用 在需要轉換的文件里引入polyfill
import "@babel/polyfill";
@babel/polyfill 和 @babel/preset-env 的關系
@babel/preset-env 中與 @babel/polyfill 的相關參數有 targets 和 useBuiltIns 兩個
targets: 支持的目標瀏覽器的列表
useBuiltIns: 參數有 “entry”、”usage”、false 三個值。默認值是false,此參數決定了babel打包時如何處理@babel/polyfilll 語句。
“entry”: 會將文件中 import‘@babel/polyfilll'語句 結合 targets ,轉換為一系列引入語句,去掉目標瀏覽器已支持的polyfilll 模塊,不管代碼里有沒有用到,只要目標瀏覽器不支持都會引入對應的polyfilll 模塊。
“usage”: 不需要手動在代碼里寫import‘@babel/polyfilll',打包時會自動根據實際代碼的使用情況,結合 targets 引入代碼里實際用到 部分 polyfilll 模塊
false: 對 import‘@babel/polyfilll'不作任何處理,也不會自動引入 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設置項,不同的值需要不同的依賴包
corejs的值
需要安裝的依賴包
false
npm install --save @babel/runtim
2
npm install --save @babel/runtime-corejs2
3
npm install --save @babel/runtime-corejs3
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
總結
以上是生活随笔為你收集整理的php实现把es6转为es5,使用webpack将ES6转化ES5的实现方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nodejs怎么与c语言通信费是什么,N
- 下一篇: 软件工程 Beta 阶段 团队贡献分数