第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開發(fā)者教程

JavaScript 入門教程

Babel

Babel 是一個 JavaScript 編譯器。
Babel 是一個工具鏈,主要用于將 ECMAScript 2015+ 版本的代碼轉(zhuǎn)換為向后兼容的 JavaScript 語法,以便能夠運行在當(dāng)前和舊版本的瀏覽器或其他環(huán)境中。

BabelNode.js 驅(qū)動,可以把 ES6+ 的代碼編譯成 ES5、ES3 的代碼。

配合插件和工具,Babel 還能處理一些非規(guī)范的語法,處理 JSXTypeScript 等。

使用 Babel,可以讓開發(fā)者在開發(fā)環(huán)境享受新特性帶來的優(yōu)質(zhì)的編碼體驗,又能讓代碼在生產(chǎn)環(huán)境兼容大部分瀏覽器或其他宿主環(huán)境,如 Node.js。

1. 安裝 Babel

Babel 可以直接使用 npm 安裝。

首先進入到一個空目錄,初始化一個項目,然后安裝 Babel

npm init -y

npm i @babel/core @babel/cli -D

圖片描述

安裝后可以查看 package.json 中的內(nèi)容,因為安裝時候提供了 -D 參數(shù),表示安裝到開發(fā)依賴中,-D--save-dev 參數(shù)的別名。

安裝完后就可以利用 npm scripts 使用 babel 命令行工具了。

2. 使用 Babel

先創(chuàng)建一個帶有 ES6 語法的 JS 文件:

// index.js
const fn = (a, b) => a + b;

const added = fn(1, 2);

然后修改一下 package.jsonscripts 選項。

// package.json
"scripts": {
  "compile": "babel index.js"
}

保存后就可以進入終端,輸入命令 npm run compilenpm 就會去執(zhí)行 compile 對應(yīng)的命令,也就是使用 Babel,對 index.js 文件進行編譯。

圖片描述

但執(zhí)行后會發(fā)現(xiàn)代碼并沒有變成非 ES6 的代碼,那是因為沒有告訴 Babel 想要將現(xiàn)有代碼編譯成什么樣的代碼,這時候就需要提供一個配置文件。

2.1 babel 配置文件

在項目根目錄新建一個 babel.config.js 的文件,以前的 Babel 版本對應(yīng)的默認(rèn)配置文件名是 .babelrcBabel@7 之后官方更推薦使用 babel.config.js。

然后安裝一下 Babel 的預(yù)設(shè)配插件,Babel 提供了許多預(yù)設(shè),官方命名為 Presets,現(xiàn)有的 Preset 非常多,如 preset-es2015、preset-es2016、preset-es2017,每一個對應(yīng)了一個 ES 的版本,現(xiàn)在 ES 每年都會有一個版本,所以插件會越來越多。

preset-env 這個預(yù)設(shè)為解決上述和一些其他問題而被官方推出,如果不給任何配置,這個 preset 的效果與 preset-latest 相同。

所以要安裝一下 @babel/preset-env 這個預(yù)設(shè)。

npm i @babel/preset-env -D

然后修改配置文件:

// babel.config.js

module.exports = {
  presets: [
    '@babel/preset-env',
  ],
};

告訴 Babel,presets 使用 @babel/preset-env,presets 配置項是個數(shù)組,可以有多個 presets,目前只用到一個。

做好這些工作,再去命令行跑 npm run compile

圖片描述

現(xiàn)在這樣就成功的把 ES6 代碼編譯成了 ES5

但現(xiàn)在代碼并沒有輸出成文件,而是直接顯示在了終端里,最好是能輸出到一個文件里,這個需求改下命令就能做到。

// package.json
"scripts": {
  "compile": "babel index.js -o index.compiled.js"
}

增加 -o 參數(shù),表示要輸出到哪個文件,然后再執(zhí)行 npm run compile

圖片描述

為什么 npm run compile 可以去調(diào)用 babel 命令行工具?
node_modules 下有個 .bin 目錄,在執(zhí)行一個命令的時候,npm 會先去 node_nodules/.bin 下找對應(yīng)的命令行工具,如果有就會調(diào)用執(zhí)行。而 babel 會出現(xiàn)在 .bin 目錄下,又與 babel 項目中的 package.json 文件的 bin 配置項有關(guān),具體的可以再去官方文獻(xiàn)中擴展。

3. 小結(jié)

Babel 是一個很重要的工具,是現(xiàn)在編譯方案的首選。