国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

ES2015入門(mén)系列9-Babel和Rollup

eccozhou / 1201人閱讀

摘要:雖然夠好用,奈何沒(méi)有瀏覽器對(duì)其可以完全支持,本文書(shū)寫(xiě)時(shí)間,開(kāi)發(fā)版號(hào)稱(chēng)已經(jīng)支持的特性。開(kāi)始安裝本系列假定讀者都有使用經(jīng)驗(yàn),如果還沒(méi)有,趕緊去這里了解并安裝吧。到此,我們的已經(jīng)準(zhǔn)備就緒。

通過(guò)前面章節(jié)的講解,大家對(duì)ES2015的一些新語(yǔ)法有了初步的理解,之前我們的測(cè)試代碼都可以直接放入 Chrome Console 中直接運(yùn)行,為了更好的學(xué)習(xí)后面的面向?qū)ο蠛湍K開(kāi)發(fā),我先用一章介紹一下 Babel 和 Rollup。

ES2015雖然夠好用,奈何沒(méi)有瀏覽器對(duì)其可以完全支持,本文書(shū)寫(xiě)時(shí)間,Chrome開(kāi)發(fā)版號(hào)稱(chēng)已經(jīng)支持99%的ES2015特性。

所以,我們需要借助一個(gè)可以幫助我們將ES6代碼翻譯為瀏覽器都100%支持的ES5代碼的工具,這就是本文的主角之一:Babel

打開(kāi)Babel官網(wǎng), 可以看到大大的介紹:

Babel is a JavaScript complier. Use next generation JavaScript today.

Babel是Javascript編譯器,可以讓我們現(xiàn)在就可以使用新的語(yǔ)法寫(xiě)JavaScript,而不用擔(dān)心瀏覽器兼容的問(wèn)題。

開(kāi)始安裝:

本系列假定讀者都有NodeJS使用經(jīng)驗(yàn),如果還沒(méi)有,趕緊去這里了解并安裝吧。

我們可以使用

npm install --global babel-cli

這樣全局安裝Babel, 但是這并不是很好的做法,因?yàn)?

不同的項(xiàng)目可能需要依賴(lài)不同版本的Babel

不能絕對(duì)依賴(lài)某個(gè)版本的Babel,不夠靈活

所以,最好的做法是為每一個(gè)項(xiàng)目安裝Babel

創(chuàng)建項(xiàng)目目錄并安裝:

mkdir -p es2015-learning
cd es2015-learning

創(chuàng)建文件package.json, 里面放入以下內(nèi)容:

{
  "name": "es2015-learning",
  "version": "1.0.0"
}

安裝Babel:

npm install --save-dev babel-cli

安裝完成后,我們的package.json文件會(huì)變成類(lèi)似下面的:

{
  "name": "es2015-learning",
  "version": "1.0.0",
  "devDependencies": {
    "babel-cli": "^6.9.0"
  }
}

由于我們的babel安裝在項(xiàng)目中,所以我們無(wú)法直接在命令行中執(zhí)行 babel 命令,雖然可以用

./node_modules/.bin/babel

調(diào)用, 但是為了方便,我們需要在 package.json 中定義命令使用,修改 package.json 如下:

{
  "name": "es2015-learning",
  "version": "1.0.0",
  "scripts": {
      "build": "babel src -d dist"
  },
  "devDependencies": {
    "babel-cli": "^6.9.0"
  }
}

這樣,我們就可以使用

npm run build

直接調(diào)用Babel為我們?cè)?strong>src中的js代碼進(jìn)行編譯到dist文件夾中,而不用每次都

./node_modules/.bin/babel src -d dist

很簡(jiǎn)單,對(duì)吧?那趕緊試試看:

創(chuàng)建文件夾

mkdir src
mkdir dist

在 src 中創(chuàng)建文件 main.js, 編輯代碼:

const PI = 3.1415926;
alert(PI);

執(zhí)行命令:

$ npm run build
//輸出
src/main.js -> dist/main.js

查看dist文件夾中的main.js文件,不出意外,babel 并沒(méi)有為我們做任何的轉(zhuǎn)變,因?yàn)椋築abel 在 6.0以后不在默認(rèn)啟用代碼轉(zhuǎn)換,實(shí)際上Babel默認(rèn)沒(méi)有自帶任何轉(zhuǎn)換插件,這需要我們手動(dòng)安裝一下,這里需要安裝ES2015 Preset插件

npm install babel-preset-es2015 --save-dev

安裝完成后,還需要告訴Babel啟用該插件,創(chuàng)建.babelrc文件,并在其中加入如下內(nèi)容,

{
  "presets": ["es2015"]
}

準(zhǔn)備就緒,再次執(zhí)行:

npm run build

完成后,可以看到現(xiàn)在的dist/main.js已經(jīng)被轉(zhuǎn)換為:

"use strict";

var PI = 3.1415926;
alert(PI);

這時(shí)候引用dist/main.js 到瀏覽器中,會(huì)一切運(yùn)行正常。

到此,我們的Babel已經(jīng)準(zhǔn)備就緒^_^。

但是,讓我們?cè)倏纯聪旅娴拇a:

// src/Human.js
export default class Human{

}
// src/main.js
import  Human from "./Human.js";

class Man extends Human{

}

let man = new Man();

執(zhí)行

npm run build

查看 dist/main.js代碼(部分):

"use strict";

var _Human2 = require("./Human.js");
...
...

這個(gè)時(shí)候如果我們?cè)跒g覽器中引用main.js, 很遺憾是無(wú)法運(yùn)行的,因此,我們還需要一個(gè)模塊加載器 (module bundler), 模塊加載器有很多,如:

webpack

Browserify

但是今天我要介紹是另外一個(gè): Rollup

the next-generation JavaScript module bundler

下一代JavaScript模塊加載器,趕緊來(lái)認(rèn)識(shí)認(rèn)識(shí)吧!

安裝:

npm install --save-dev rollup

創(chuàng)建 rollup.config.js 文件,內(nèi)容加入:

module.exports = {
  entry: "src/main.js",
  dest: "dist/main.js"
}

嘗試一下:

./node_modules/.bin/rollup -c

編譯出來(lái)的dist/main.js代碼如下:

"use strict";

class Human {

}

class Man extends Human {

}

let man = new Man();

很完美對(duì)不對(duì)? 但是,不支持ES2015的瀏覽器怎么辦?不用怕,我們將 Babel 和 Rollup 結(jié)合起來(lái)。

安裝rollup的babel插件:

npm install --save rollup-plugin-babel
npm install --save babel-preset-es2015-rollup

修改rollup.config.js為:

let babel = require("rollup-plugin-babel");

module.exports = {
  entry: "src/main.js",
  plugins: [babel()],
  dest: "dist/main.js"
}

修改.babelrc為:

{
  "presets": ["es2015-rollup"]
}

再次運(yùn)行:

./node_modules/.bin/rollup -c

此時(shí)的dist/main.js代碼就可以被支持ES5的瀏覽器使用了!

最后我們修改我們的packages.json的build命令為:

"build": "rollup -c"

后面只要運(yùn)行:

npm run build

就可以享受Babel和Rollup帶來(lái)的便利, 輕松使用ES2015語(yǔ)法編寫(xiě)JS代碼啦!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/83760.html

相關(guān)文章

  • ES2015入門(mén)系列11-模塊 Modules

    摘要:先來(lái)介紹下語(yǔ)法官方示例代碼模塊中對(duì)象暴露只需要即可,可以是任何類(lèi)型的對(duì)象。手動(dòng)導(dǎo)入模塊下某個(gè)對(duì)象,需要和模塊中定義的名字對(duì)應(yīng),順序無(wú)關(guān)。 看一下官方介紹: Language-level support for modules for component definition. JS在ES2015開(kāi)始原生支持模塊化開(kāi)發(fā),我們之前也曾借助于諸如: AMD CommonJS 等的模塊加載...

    HitenDev 評(píng)論0 收藏0
  • package.json 非官方字段集合

    摘要:非官方字段集合官方字段請(qǐng)參考。下面介紹的是非官方字段,也就是各種工具定義的相關(guān)字段。詳細(xì)參考相關(guān)字段設(shè)置項(xiàng)目的瀏覽器兼容情況。相關(guān)字段測(cè)試庫(kù)。相關(guān)字段代碼檢查與優(yōu)化。 package.json 非官方字段集合 package.json 官方字段請(qǐng)參考 https://docs.npmjs.com/files/package.json。下面介紹的是非官方字段,也就是各種工具定義的相關(guān)字段...

    denson 評(píng)論0 收藏0
  • [譯]教程:如何使用Rollup打包樣式文件并添加LiveReload

    摘要:通過(guò)這個(gè)教程學(xué)習(xí)如何使用打包工具配合來(lái)取代或處理樣式文件。使用這個(gè)命令安裝插件更新。如果你沒(méi)有項(xiàng)目的副本,你可以通過(guò)這條命令克隆在結(jié)束這個(gè)狀態(tài)下的項(xiàng)目為添加監(jiān)聽(tīng)插件。在代碼塊內(nèi),添加如下內(nèi)容簡(jiǎn)單起見(jiàn)我省略了文件的大部分內(nèi)容 通過(guò)這個(gè)教程學(xué)習(xí)如何使用JavaScript打包工具Rollup配合PostCSS來(lái)取代Grunt或Gulp處理樣式文件。 上一篇文章中,我們完成了使用Rollup...

    garfileo 評(píng)論0 收藏0
  • JS打包工具rollup——完全入門(mén)指南

    摘要:使用進(jìn)行模塊化打包在之前打包的過(guò)程中,命令行中輸出了一行,這表示并沒(méi)有收到任何模塊化的格式指令,因此會(huì)用默認(rèn)的模塊標(biāo)準(zhǔn)來(lái)對(duì)文件進(jìn)行打包。 前言 最近在做一個(gè)提供給瀏覽器和node同時(shí)使用的js的url模板工具類(lèi),在用什么打包工具上糾結(jié)了一段時(shí)間,正好有一天在知乎上看到了關(guān)于rollup的介紹,在自己試了試之后,就決定用rollup.js來(lái)打包自己的工具類(lèi)了。 這篇文章主要是為了讓對(duì)ro...

    dreamtecher 評(píng)論0 收藏0
  • Javascript 打包工具

    摘要:所以,打包工具就出現(xiàn)了,它可以幫助做這些繁瑣的工作。打包工具介紹僅介紹款主流的打包工具,,,,以發(fā)布時(shí)間為順序。它定位是模塊打包器,而屬于構(gòu)建工具。而且在其他的打包工具在處理非網(wǎng)頁(yè)文件比如等基本還是需要借助它來(lái)實(shí)現(xiàn)。 本文當(dāng)時(shí)寫(xiě)在本地,發(fā)現(xiàn)換電腦很不是方便,在這里記錄下。 前端的打包工具 打包工具可以更好的管理html,css,javascript,使用可以錦上添花,不使用也沒(méi)關(guān)系...

    Sleepy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<