詳解如何使用babel進(jìn)行es6文件的編譯
1.babel
2. 安裝
npm i babel-cli -g
通過(guò)上面命令進(jìn)行babel的安裝,其中i表示安裝install的意思, -g表示安裝到全局
3.使用
創(chuàng)建文件es6.js
let num = [1,2,3,4]; let plusDouble = num.map(item => item * 2); console.log(plusDouble);
然后使用命令進(jìn)行編譯:
babel es6.js -o compiled.js
然后就會(huì)在當(dāng)前目錄下出現(xiàn)編譯之后的文件,就這樣,我們完成了編譯的過(guò)程,但是,當(dāng)我們進(jìn)行運(yùn)行編譯之后的文件時(shí),仍然會(huì)報(bào)錯(cuò),其實(shí)主要原因是上面的編譯沒(méi)有加約束條件,也就是沒(méi)有告訴babel去怎么編譯,那下面我們就進(jìn)行對(duì)babel進(jìn)行配置
4. 配置
(1)通過(guò)文件配置
在項(xiàng)目目錄下創(chuàng)建文件.babelrc,在文件中書寫如下代碼:,由于babel是通過(guò)插件的形式進(jìn)行使用,所以在下面代碼中通過(guò)添加對(duì)象預(yù)設(shè)和插件
{
"presets": [],
"plugins": []
}
安裝插件,在下面這個(gè)插件的使用,可以將ES6代碼編譯為ES5代碼:
npm i --save-dev babel-preset-es2015
(代碼中--save-dev代表安裝在本地開(kāi)發(fā)依賴中)
然后將.babelrc中的文件進(jìn)行修改為以下內(nèi)容:
{
"presets": ["es2015"],
"plugins": []
}
至此,我們已經(jīng)配置完成,運(yùn)行編譯命令即可得到下面的結(jié)果:
"use strict";
var num = [1, 2, 3, 4];
var plusDouble = num.map(function (item) {
return item * 2;
});
console.log(plusDouble);
運(yùn)行之后能夠正常打印結(jié)果
現(xiàn)在我們能夠進(jìn)行簡(jiǎn)單的編譯,但是對(duì)于一些es7里邊的新特性還是有點(diǎn)限制,這樣,我們就的使用插件進(jìn)行編譯,如下面所示對(duì)象展開(kāi)符插件object-rest-spread,同樣的,我們使用命令進(jìn)行安裝
npm i babel-plugin-transform-object-rest-spread --save-dev
同樣進(jìn)行到插件中修改
{
"presets": ["es2015"],
"plugins": ["transform-object-rest-spread"]
}
然后通過(guò)代碼進(jìn)行測(cè)試,在代碼中書寫如下內(nèi)容(...為ES7中預(yù)先提出的設(shè)想):
let courses = { name: 'english', score: 90};
courses = { ...courses, comment: 'A'};
console.log(courses);
編譯之后的結(jié)果為:
'use strict';
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var courses = { name: 'english', score: 90 };
courses = _extends({}, courses, { comment: 'A' });
console.log(courses);
通過(guò)添加_extends方法將對(duì)象展開(kāi)符進(jìn)行轉(zhuǎn)化,運(yùn)行代碼可正常輸出結(jié)果
(2)通過(guò)在webpack配置文件中進(jìn)行其他屬性的加載配置
在webpack中,我們能夠通過(guò)各類加載器進(jìn)行樣式的加載,在使用樣式加載的時(shí)候,通過(guò)下面鏈接進(jìn)行查看:http://m.fzitv.net/article/141096.htm
以上就是babel編譯es6文件的方法,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
純javascript移動(dòng)優(yōu)先的幻燈片效果
這篇文章主要介紹了純javascript實(shí)現(xiàn)移動(dòng)優(yōu)先的幻燈片效果,感興趣的小伙伴們可以參考一下2015-11-11
微信小程序動(dòng)態(tài)顯示項(xiàng)目倒計(jì)時(shí)效果
這篇文章主要為大家詳細(xì)介紹了微信小程序動(dòng)態(tài)顯示項(xiàng)目倒計(jì)時(shí),格式如4天7小時(shí)58分鐘39秒,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
用js寫“算24”游戲的思路分析與實(shí)現(xiàn)代碼
“算24”是一種游戲,小時(shí)候玩過(guò),就是一副撲克,把大王,小王除掉,A算1點(diǎn)J,Q,K都算10點(diǎn)。任意抽4個(gè)牌,可以運(yùn)用+-*/()來(lái)進(jìn)行運(yùn)算,把最后結(jié)果等于24。2008-05-05
JavaScript如何利用Promise控制并發(fā)請(qǐng)求個(gè)數(shù)
大家都知道js是單線程,并不存在真正的并發(fā),但是由于JavaScript的Event Loop機(jī)制,使得異步函數(shù)調(diào)用有了“并發(fā)”這樣的假象。這篇文章主要給大家介紹了關(guān)于JavaScript如何利用Promise控制并發(fā)請(qǐng)求個(gè)數(shù)的相關(guān)資料,需要的朋友可以參考下2021-05-05
js使用i18n實(shí)現(xiàn)頁(yè)面國(guó)際化的方法
本篇文章主要介紹了js使用i18n實(shí)現(xiàn)頁(yè)面國(guó)際化的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
解決前端接收 type:"application/octet-stream" 格
前端接收 type: “application/octet-stream“ 格式的數(shù)據(jù)并下載,還有后端既返回octet-stream還返回JSON數(shù)據(jù)時(shí)的處理方法,今天給大家分享前端接收 type:"application/octet-stream" 格式的數(shù)據(jù)并下載(解決后端返回不唯一問(wèn)題)的解決方案,感興趣的朋友一起看看吧2023-12-12
Js獲取下拉框選定項(xiàng)的值和文本的實(shí)現(xiàn)代碼
本篇文章主要是對(duì)Js獲取下拉框選定項(xiàng)的值和文本的實(shí)現(xiàn)代碼進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-02-02

