Babel 7から始めましょう

Sep 11, 2025
操作方法
Get going with the Babel 7

JavaScriptは、生態系の幅のために一意です。新しい標準が構文砂糖を追加している間、ブラウザでサポートされていると時間がかかります。 Babelは自動転置によってこの問題を回避する。

製品の背後にある考え方は簡単です.BabelはES6またはES7コードを取り込み、新しい構文要素をエミュレーションコードで置き換えます。その出力はClassic JavaScriptの構文を確認し、Internet Explorerのような古いブラウザで実行されます。

Babelの最初のリリースは嵐で世界を取りました。それが最初に現れた後、反応、VUE、EMBERのようなさまざまなフレームワークがそれを受け入れました。開発者は、バックグラウンドで機能することを知らずに製品を使用しています - 複数の人気のあるNPMプロジェクトにはBabelに依存しています。

  • アプリを作る方法

これらの依存関係は、前任者のリリースプロセスを紛争収益済みの事件に変換しました。まだ小さなメンテナチームによって管理されているバージョン7は、できるだけ互換性があると試みました。壊れた変化は数短い、一方コード生成品質は高いままになります(チームを使って作業して、文書を保存する場合 クラウドストレージ あなたがまとまりを維持するのを助けます)。

あなたがBabel以前に働いていない場合は、これをあなたのガイドにしてください。互換性のあるWorriesのない高度なJavaScript機能を使用できることは、人生をはるかに簡単にします。

あなたのプロセスを合理化するためのいくつかのツールが欲しいですか?私たちのガイド ウェブサイトビルダー 役立ちます。長期サポートが欲しい?右をもらう ウェブホスティング サービス。

01.バージョンチェック

Babelは通常ノードランタイム環境に存在します。使用されているバージョンをチェックして起動しましょう。出力は、次の記事を作成するために使用されたUbuntu 14.04ワークステーションで見つかったバージョン状態を提供します。これはPedantryではありません - この手順に付随する図では、Babelチームがかなりの数のnode.jsバージョンのサポートをドロップしたことを示しています。

 Tamhan @ Tamhan-ThinkPad:〜$ node --version
v8.14.0
Tamhan @ Tamhan-ThinkPad:$ NPM  -  Version
6.4.1 

02.パッケージ名の変更

バージョン7の壊れた変更は、Babelパッケージを自分の名前空間に移動させることを含んでいます。古いパッケージはさまざまなリポジトリから削除されませんでした。これは、レガシーパッケージ名の使用がこのステップに伴う図に示されている状況につながるため、重要です。

 Tamhan @ Tamhan-ThinkPad:〜/ workspaceB7 $ NPM
--save-dev @ babel / core @ babel / cli @
Babel / Preset-env @ Bable / Node
。 。 。
+ @ Babel / Core @ 7.2.0
+ @ babel / node @ 7.2.0
+ @ Babel / CLI @ 7.2.0
+ @ Babel / Preset-env @ 7.2.0 

03.ビルドアクションを追加します

上記のステップは、NPMプロジェクトの内部に取り組むことを前提としています。その場合、ビルドアクションを介してBabelを実行するのは簡単です。開いた Package.json. 以下のコードで説明されているようにそれを修正します。

 {
。 。 。
"main": "index.js"、
"スクリプト":{
"test": "エコー\"エラー:テストなし
指定「&&出口1」、
"build": "babel index.js -d lib"

04.手でのトランスパイルコード

Babelを作業に置くことは、ビルドアクションを発射することを含みます。これはnpm runコマンドを介して最もよく達成されます。 the - 価値は、結果がに配置されなければならないことをBabelに知らせます。 lib lib フォルダ - この手順に付属の図は、そのフォルダがその場で作成されることを示しています。

 Tamhan @ Tamhan-ThinkPad:〜/ workspaceB7 $ NPM
ビルドを実行します
> [email protected]ビルド/ホーム/タムハン/
WorkSpaceB7
> babel index.js -d lib.
ベイビルで1ファイルを正常にコンパイルしました。

05.構成の質問

さらに設定オプションなしでBabelを呼び出すことで、転置を有効にしません。コードは、フレームワークがターゲット環境に関する詳細情報を受信した場合にのみ割り当てることができます。これはコマンドラインパラメータを介して、または呼び出されたファイルを作成することによって行うことができます。 .babelrc プロジェクトのルートで。

06. BabelRCを設定します

Babelはプラグインのセットを介して自分自身を構成し、それぞれがコードベースに転置変換を適用します。私たちはを使います env env パッケージ - ほとんどのベースをカバーすることを目的とした事前に構成された変換のセットが付属しています。

 {
「プリセット」:[「@ babel / preset-env」]

07.テストドライブの時間

いくつかのライブコードに対してプログラムをテストするために、Index.jsに少し新しい年齢のJavaScriptを追加してください。このステップに付随するコードはレガシーブラウザでは機能しません - 完了したら、暗黙的な関数はaに置き換えられます 正常 図に示すように、宣言。

関数tamstest(){
[1,2,3] .map((n)= gt; n + 1)。

08.ターゲティングを調整します

env env デフォルトでほとんどの転置を適用します。製品の目標は、帯域幅とパフォーマンスコストを考慮せずに、普遍的に互換性のあるJavaScriptを作成することです。 Aを渡して設定を変更できます ターゲット Object - 以下の例は、Chromeの特定のバージョンとIEをターゲットにします。

 {
「プリセット」:[
【
"@ Babel / Preset-env"、
{
「ターゲット」:{
"Chrome": "58"、
"IE": "11"
}
}
]
]

09.高度なターゲティング

BabelのブラウザターゲティングはChromeとInternet Explorerに限定されません。協力のおかげで ブラウザリスト 次に示すように、開発者は1ダースのターゲットから混合して一致させることができます。

名前は大文字と小文字が区別されません。

  • アンドロイド Android WebViewの場合
  • b b Baiduブラウザの場合。
  • ブラックベリー または b BlackBerryブラウザの場合。
  • クロム Google Chromeの場合。
  • Chromeandroid または and_chr. Android用Chrome用。
  • Microsoft Edgeの場合
  • 電子 電子枠組みのために。それはChromeバージョンに変換されます。
  • 冒険者 または なお Internet Explorerの場合。
  • エクスプローサーモビル または IE_MOB. Internet Explorer Mobileの場合。
  • Firefox. または FF Mozilla Firefoxのために。
  • Firefoxandroid. または and_ff Android用Firefox用。
  • i i または ios_saf. iOS Safariの場合。
  • ノード OperaのNode.js.operaの場合。
  • Opera Miniは または op_mini. Opera Miniの場合。
  • オペラモビル または op_mob. Opera Mobileの場合。
  • Qqandroid または and_qq Android用のQQブラウザの場合。
  • サファリ Desktop Safariの場合。
  • サムスン サムスンのインターネットのために。
  • Ucandroid または and_uc. Android用UCブラウザ用。

10.高度なターゲティング、パート2

ブラウザリストは高度なクエリも取得できます。 そのホームページ 構成オプションを一覧表示します。これらのすべてが修正によってBabel内でも使用できる可能性があります。 バベル 。ワークステーションにNPXがインストールされている場合は、クエリをローカルに評価できます。

 {
「ターゲット」:「> 0.25%、死んではない」

11.自動転送

Babelを手で起動しなければならないとすぐに面倒になります。 nodemonユーティリティはファイルシステムのリソースを監視し、変更が検出されるとコマンドを消します。理論的には、Nodemonサポートを追加することは小さな変更によって処理されます Package.json.

 {
"名前": "workspaceb7"、
。 。 。
"main": "index.js"、
「スクリプト」:
{
"start": "nodemon --exec babel-node
Index.js "、

12.プレゼンスを確認してください

いくつかのワークステーションがあります n n グローバルに取り付けられています。そうでない場合は、プログラムを呼び出すと、以下のものと同様のエラーメッセージが表示されます。幸い、展開 n n で簡単に達成されます NPMインストール コマンド。

 Tamhan @ Tamhan-ThinkPad:〜/ workspaceB7 $ NPM
--save-dev nodemonをインストールする

13.機能を確認します

発射します NPMスタート ターミナルウィンドウで、の内容を変更する index.js. Geditのようなエディタで Visual Studioコード 。保存後、 n n ステータス情報を出力します。

 [Nodemon]変更のために再起動します...
[nodemon] `babel-node index.js`を起動します
[nodemon]クリーン出口 - 変更を待っています
再起動する前に

14.転置を修正しました

一方 n n この時点で、検出は完璧に機能するはずです。 index.js. INのファイルが見つかるファイル lib lib 更新しないでください。これは裸のものによって引き起こされます Babel-Node - トランスパイル付きファイルをディスクにコミットしません。代わりに、トランザクションファイルと連動するノードCLIの変更されたバージョンから発生します。

15. Transpileコードプログラムによる

Babelはコマンドラインの作業に限られていません。正しいパッケージがインストールされている場合は、コードを別のプログラムから解除することもできます。このステップに付随するスニペットは、入力文字列に基本的な変換のセットを適用します。設定設定は通常、から取得されます。 バベル ファイル。

 var babel =要求( "@ babel / core")。
"@ babel / core"からインポート{変換};
"@ babel / core"からBabelとしてインポート*。
Babel.Transform( "code();"、
関数(err、結果){
result.code;
result.map;
結果。
}); 

16.ファイル全体を転置します

ソースコードは通常、文字列変数に保存されません。 Babel APIは、ファイル名の入力文字列をファイル名の入力文字列を指定して説明します。ただし、結果は通常のJavaScript変数として返されます。

 Babel.TransformFile( "filename.js"、オプション、
関数(err、結果){
結果; // => {コード、Map、AST}
}
)

17.同期と非同期

Babel 7は、ほとんどのAPI呼び出しの同期バージョンと非同期バージョンを導入しました。あなたのニーズに合わせて正しいものを選ぶことを確認してください - 少しの例を飛ぶことができますが、より複雑なファイルでBabelが緩んで設定すると、数十秒に走行する遅延が簡単につながる可能性があります。

18.個々のプラグインについて学んでください

バックグラウンドで何が起こるのか疑問に思うことを自分で見つけることができるようにしたら、 このページ 。それは現在Babel配布に含まれているすべてのプラグインのリストを提供し、そしてまた彼ら自身のプラグインを作成しようとするすべての人々のためのいくつかのヒントを含んでいます。

19. TypeScriptの詳細を削除します

Babelは、新しい年齢のJavaScript要素を転送するには限定されません。この製品には、機能制約付きのTypeScriptエンジンが含まれています。入力情報を切り替えて、高度な要素を置き換えます。残念ながら、Babelは型チェックを実行しません - これはTypeScript言語の最も重要な利点の1つを排除します。

 {
「プリセット」:[「@ベイバー/プリセットスクリプト」」]

20. Babelをオンラインで実行します

転送操作は通常スムーズに解決されている間、問題が発生することがあります。その場合、 Babel Regl 役に立ちます。ワークステーションのブラウザでBabelを実行し、入力と出力を互いの隣に表示します。

21.痛みの点について学びます

私たちの序論は、Babelがさまざまなプロジェクトにわたって広範囲にわたる使用を見ることを説明しました。 Babelのメンテナチームは、Aのバージョンアップグレードを簡素化します 詳細な変更ログ 。プログラム的にBaberを使用している場合は、相談することを忘れないでください。 APIアップグレードガイド

この記事はもともとCreative Web Design Magazineの第283号に掲載されました ウェブデザイナー ここで問題283を購入してください または ここでWeb Designerを購読してください

関連記事:

  • より速くコード化された、JavaScriptをより軽いにする方法
  • 5素晴らしいJavaScript API
  • 27トップクラスのウェブサイトテンプレート

操作方法 - 最も人気のある記事

How to speed up retopology in Maya

操作方法 Sep 11, 2025

(イメージクレジット:アントニーワード) Mayaで専門薬を実行する能力は有用なスキ�..


数量特定のCSSスタイルとレイアウトを作成する

操作方法 Sep 11, 2025

このチュートリアルでは、要素の数に応じて、要素のCSSスタイルを変更する方法を調べます。よ..


Unrealエンジンで草を作る

操作方法 Sep 11, 2025

建築の可視化を作成するときは、詳細をたくさん表現する必要があります。最も時間のかかる1�..


CSSシェイプで素晴らしい効果を作成する方法

操作方法 Sep 11, 2025

フロントエンド開発者は長方形で考える傾向があります。長方形の内側の長方形の内側の長方形..


Reactで簡単な音楽プレーヤーを構築する

操作方法 Sep 11, 2025

反応する ユーザーインターフェイスを構築するための人気のJavaScriptライブラリであり�..


Monetのような絵の秘訣

操作方法 Sep 11, 2025

このMasterClassを使って、私たちはモネの頭の中を少し入ろうとしますので、私たちは彼のスタイ�..


ゲーム用の様式化された3D文字を作成する方法

操作方法 Sep 11, 2025

この 3Dアート チュートリアルは、iCloneのキャラクタークリエイターでの半様式アバ�..


Adob​​e XDでプロトタイピングを始めましょう

操作方法 Sep 11, 2025

UXデザインの専門家の需要が成長し続けているため、デザイナーは高品質のプロトタイプを作成するのに十分強力な使いやすいツールを探して..


カテゴリ