最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js基礎(chǔ)模塊babel使用詳解

 更新時(shí)間:2022年06月21日 10:21:01   作者:??一只大加號????  
這篇文章主要介紹了Node.js基礎(chǔ)模塊babel使用詳解,babel是由一系列的組件構(gòu)成,所以我們在開發(fā)過程中,要從自行配置組件來開始使用babel的功能

前言:

由于ES6到ES7增加了很多新的語法,新特性的出現(xiàn)使得大家都希望通過新語法來提升自身的開發(fā)效率,但在之前的最新的node可能也沒有百分之百的支持ES2017的新特性,而且開發(fā)者在開發(fā)環(huán)境和生產(chǎn)環(huán)境中的版本一般是不同的,所以新特性的代碼可能不能完美的運(yùn)行在線上環(huán)境中,為了解決難題,babel提供一系列的api來將新特性的語法轉(zhuǎn)化成低版本環(huán)境中能夠運(yùn)行的代碼

安裝配置

babel是由一系列的組件構(gòu)成,所以我們在開發(fā)過程中,要從自行配置組件來開始使用babel的功能

我們先來安裝一下babel-cli,通過npm運(yùn)行即可將babel-cli下載到我們的node_modules中

`npm install babel-cli`

image.png

使用babel

我們再項(xiàng)目中增加一個(gè)名為.babelrc的配置文件,用于指定babel以哪一個(gè)版本的ES來進(jìn)行轉(zhuǎn)換,新增文件并作以下配置,這里記得要用雙引號,單引號的話會報(bào)錯

{
    "presets":[
        "es2016",
        "stage-0"
    ]
}

es表示了轉(zhuǎn)化的版本,stage則代表了提案的特性,這里我們可以來簡單了解一下

  • stage0: strawman,任何TC39的成員都可以提出的草案,隨時(shí)被廢棄。
  • Stage 1: proposal,這是一個(gè)比較正式的提議,表示要進(jìn)一步討論。
  • Stage 2: draft,在上一步的基礎(chǔ)上進(jìn)行盡可能詳細(xì)的討論,到了這個(gè)階段后,只允許增量修改。
  • Stage 3: candidate,對提案的討論基本完成,等待用戶的反饋,只有發(fā)生重大問題時(shí)才會修改。
  • Stage 4: finished,經(jīng)過了充分的測試,已經(jīng)準(zhǔn)備好寫進(jìn)新標(biāo)準(zhǔn)了。

實(shí)際例子

我們使用額外的組件來幫組我們完成轉(zhuǎn)化

npm install -save babel-core

安裝完轉(zhuǎn)化工具后進(jìn)行編寫代碼

//babel.js
let [aa,bb,cc] = [11,22,33]
let a = [...'666']
console.log(a);
var babel = require('babel-core');
var fs = require('fs');
babel.transformFile("./babel/babel.js",function(err,res){
    console.log(res.code);
})

運(yùn)行這個(gè)代碼的時(shí)候會發(fā)生錯誤,那是因?yàn)槲覀冊诘谝徊骄帉慴abel配置的時(shí)候沒有下載相應(yīng)的模塊

‘Couldn't find preset "stage-0" relative to directory’

我們只要將相應(yīng)的模塊下載下來即可:

 npm install babel-preset-stage-0

在package.json說明模塊已經(jīng)存在了

 

image.png

我們執(zhí)行看一下效果,已經(jīng)是按照語法做轉(zhuǎn)化出來了

image.png

類的轉(zhuǎn)化

我們都知道class是JS的一個(gè)語法糖,那么到底是如何實(shí)現(xiàn)的,其實(shí)可以通過babel來進(jìn)行轉(zhuǎn)化

image.png

出現(xiàn)的代碼是比較長并且很復(fù)雜的,這樣即使是簡單的一個(gè)class轉(zhuǎn)化成ES5的寫法后會擔(dān)心是否存在某些問題

babel-polyfill

默認(rèn)情況下babel不會轉(zhuǎn)換一些新的API比如Promise等,可以使用第三方插件來進(jìn)行解決

npm install -s babel-polyfill

我們這里去通過自己寫一個(gè)promise的例子然后轉(zhuǎn)化一下看看

import 'babel-polyfill'
function timeout(ms){
    return new Promise((res,rej)=>{
        setTimeout(res,ms,'done')
    })
}
timeout(1000).then((val)=>{
    console.log(val);
})

轉(zhuǎn)化結(jié)果如下:

image.png

到此這篇關(guān)于Node.js基礎(chǔ)模塊babel使用詳解的文章就介紹到這了,更多相關(guān)Node.js babel內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 利用node.js如何搭建一個(gè)簡易的即時(shí)響應(yīng)服務(wù)器

    利用node.js如何搭建一個(gè)簡易的即時(shí)響應(yīng)服務(wù)器

    這篇文章主要介紹了利用node.js如何搭建一個(gè)簡易的即時(shí)響應(yīng)服務(wù)器的相關(guān)資料,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-05-05
  • NestJS實(shí)現(xiàn)接口的多版本管理

    NestJS實(shí)現(xiàn)接口的多版本管理

    在軟件開發(fā)中,隨著應(yīng)用的迭代更新,經(jīng)常需要引入新的接口版本同時(shí)保留舊版本以保證向后兼容,本教程將通過 NestJS 框架演示如何實(shí)現(xiàn)接口的多版本管理,感興趣的小伙伴跟著小編一起來看看吧
    2024-06-06
  • 詳解Node.js開發(fā)中的express-session

    詳解Node.js開發(fā)中的express-session

    express-session?是基于express框?qū)iT用于處理session的中間件,本篇文章主要介紹了詳解Node.js開發(fā)中的express-session,有興趣的可以了解一下<BR>
    2017-05-05
  • 輕松創(chuàng)建nodejs服務(wù)器(3):代碼模塊化

    輕松創(chuàng)建nodejs服務(wù)器(3):代碼模塊化

    這篇文章主要介紹了輕松創(chuàng)建nodejs服務(wù)器(3):代碼模塊化,本文是對第一節(jié)的例子作了封裝,需要的朋友可以參考下
    2014-12-12
  • docker中編譯nodejs并使用nginx啟動

    docker中編譯nodejs并使用nginx啟動

    這篇文章主要介紹了docker中編譯nodejs并使用nginx啟動的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • node.js中fs文件系統(tǒng)模塊的使用方法實(shí)例詳解

    node.js中fs文件系統(tǒng)模塊的使用方法實(shí)例詳解

    這篇文章主要介紹了node.js中fs文件系統(tǒng)模塊的使用方法,結(jié)合實(shí)例形式詳細(xì)分析了node.js fs文件系統(tǒng)模塊各種常見方法的基本使用技巧與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • node.js中的http.request方法使用說明

    node.js中的http.request方法使用說明

    這篇文章主要介紹了node.js中的http.request方法使用說明,本文介紹了http.request的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼需要的朋友可以參考下
    2014-12-12
  • nodejs構(gòu)建本地web測試服務(wù)器 如何解決訪問靜態(tài)資源問題

    nodejs構(gòu)建本地web測試服務(wù)器 如何解決訪問靜態(tài)資源問題

    這篇文章主要為大家詳細(xì)介紹了nodejs構(gòu)建本地web測試服務(wù)器,教大家如何解決訪問靜態(tài)資源問題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Node.js?網(wǎng)絡(luò)框架koa?compose中間件使用解析

    Node.js?網(wǎng)絡(luò)框架koa?compose中間件使用解析

    這篇文章主要為大家介紹了Node.js?網(wǎng)絡(luò)框架koa?compose中間件使用解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 微信小程序在線客服自動回復(fù)功能(基于node)

    微信小程序在線客服自動回復(fù)功能(基于node)

    這篇文章主要介紹了微信小程序在線客服自動回復(fù)功能(基于node),由于小程序嵌套webview時(shí)需要校驗(yàn)域名,因此跳轉(zhuǎn)到第三方應(yīng)用市場和Appstroe無法實(shí)現(xiàn)導(dǎo)流。那怎么辦呢,需要的朋友可以參考下
    2019-07-07

最新評論

清水河县| 杭锦旗| 南召县| 鸡西市| 江口县| 罗定市| 鸡西市| 巴南区| 府谷县| 淄博市| 土默特左旗| 合山市| 凌海市| 阜阳市| 南川市| 成武县| 永善县| 老河口市| 玛沁县| 鸡西市| 沙湾县| 吐鲁番市| 栾城县| 广灵县| 淳安县| 都江堰市| 工布江达县| 青神县| 通河县| 治多县| 南京市| 清水县| 济阳县| 尉氏县| 洪江市| 西吉县| 邹城市| 乌兰浩特市| 吴堡县| 惠水县| 奉新县|