溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

webpack4與babel配合使es6代碼可運(yùn)行于低版本瀏覽器的方法

發(fā)布時(shí)間:2020-09-26 10:06:17 來(lái)源:腳本之家 閱讀:182 作者:weiqinl 欄目:web開發(fā)

使用es6+新語(yǔ)法編寫代碼,可是不能運(yùn)行于低版本瀏覽器,需要將語(yǔ)法轉(zhuǎn)換成es5的。那就借助babel轉(zhuǎn)換,再加上webpack打包,實(shí)現(xiàn)代碼的轉(zhuǎn)換。

轉(zhuǎn)換包括兩部分:語(yǔ)法和API

let、const這些是新語(yǔ)法。

new promise()等這些是新API。

簡(jiǎn)單代碼

類庫(kù) utils.js

const name = 'weiqinl'

let year = new Date().getFullYear()

export { name, year }

index.js

import _ from 'lodash'

import { name, year } from './utils'



Promise.resolve(year).then(value => {

 console.log(`${name} - ${value} - ${_.add(1, 2)}`)

})

babel轉(zhuǎn)換

安裝babel編譯器和對(duì)應(yīng)的運(yùn)行時(shí)環(huán)境

復(fù)制代碼 代碼如下:
npm install -D @babel/core @babel/preset-env @babel/plugin-transform-runtime @babel/polyfill

并新建 .babelrc 文件,里面可以配置很多東西,內(nèi)容為:

{

 "presets": [

  ["@babel/preset-env", {

   "useBuiltIns": "usage",

   "modules": false

  }]

 ],

 "plugins": [

  [

   "@babel/plugin-transform-runtime", {

    "corejs": false,

    "helpers": false,

    "regenerator": false,

    "useESModules": false

   }

  ]

 ],

 "comments": false

}

webpack構(gòu)建

webpack4,可以零配置構(gòu)建項(xiàng)目,那是因?yàn)樗暮芏嗯渲弥刀寄J(rèn)了。在這里,我們需要自己配置。

創(chuàng)建一個(gè) webpack.config.js 文件

const path = require('path');

module.exports = {

 mode: "production",

 entry: ['@babel/polyfill', './src/index.js'],

 output: {

  path: path.resolve(__dirname, 'dist'),

  filename: '[name].bundle.js'

 },

 module: {

  rules: [{

   test: /\.js$/,

   include: [

    path.resolve(__dirname, 'src')

   ],

   exclude: /(node_modules|bower_components)/,

   loader: "babel-loader",

  }]

 }

}

使用

webpack構(gòu)建打包好的js文件,我們將其引入到html文件。

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>webpack-babel-es6</title>
</head>
<body>
 webpack構(gòu)建由babel轉(zhuǎn)碼的es6語(yǔ)法,支持es6語(yǔ)法和API<br />
 請(qǐng)查看瀏覽器控制臺(tái)
 <script src="./dist/main.bundle.js"></script>
</body>
</html>

運(yùn)行該html,可以看到控制臺(tái)有內(nèi)容輸出 weiqinl - 2018 - 3

最后的目錄結(jié)構(gòu):

webpack4與babel配合使es6代碼可運(yùn)行于低版本瀏覽器的方法

可以git查看源碼https://github.com/weiqinl/demo/tree/master/webpack-bable-es6

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI