コアポイント
- ecmascript 6(ES6)は、モジュールの形でアプリケーションのさまざまな部分をロードする機能など、現在の使用スケールに適しているため、JavaScriptに多くの改善を行いました。ただし、すべてのブラウザがすべてのES6機能を実装しているわけではなく、そこでバベルやトレーサーなどの翻訳者が登場します。
- BABELとGULPを使用して、ES6モジュールをCommonJSまたはAMDに変換して、今日のブラウザで読み取ることができます。このプロセスでは、BabelのGulpタスクを使用して、モジュールを既存のモジュールシステムの1つに変換し、ブラウザを使用するためにアプリケーションを単一のファイルにパッケージ化します。
- commonJSは、node.jsで使用される同期モジュールシステムであり、必要な関数を使用してモジュールをロードし、モジュールオブジェクトのエクスポートプロパティを使用してエクスポートします。 ES6モジュールをCommonJSに変換するには、BABEL、BROWSERIFY、およびGULPの組み合わせの使用が含まれます。
- ASYNCモジュール定義(AMD)システムを使用すると、複数の従属モジュールを並行してロードできます。 ES6モジュールをAMDに変換するには、Babel、Requirejs、およびGulpを使用します。その後、index.htmlページで最終スクリプトを直接参照して、ブラウザで表示できます。
ECMAScript 6(別名ECMAScript 2015またはES6)、JavaScriptの次のバージョンの仕様が承認され、ブラウザーベンダーがそれを実装するために取り組んでいます。 ECMAScriptの以前のバージョンとは異なり、ES6は言語に大きな変化をもたらし、今日の使用スケールに適応できるようにしました。 SitePointには、これらの機能をカバーするいくつかの記事があります。
ブラウザはまだすべての機能を実装していませんが、開発中にES6を利用して、ブラウザが配信する前に理解できるバージョンに変換することができます。 BabelとTraceurは、この目的に使用される主要な翻訳者の2人です。 MicrosoftのJavaScript Type SuperSet Typescriptは、ES6翻訳者としても使用できます。
前の記事では、ES6を使用してAngular 1.xアプリケーションを書き込む方法を説明しました。その投稿では、Traceurのインスタント翻訳者を使用してアプリケーションを実行しました。動作しますが、事前に翻訳して、ブラウザで行う必要がある作業量を減らすことをお勧めします。この記事では、同じサンプルアプリケーションをES5に翻訳し、モジュールをCommonJSまたはAMDに変換する方法を確認します。BABELを使用して、今日のブラウザで実行できるようにします。例はAngularに基づいていますが、有効なES6コードに翻訳手法を使用できます。
いつものように、GitHubリポジトリにこの記事の添付のコードを見つけることができます。
モジュールの重要性
大規模なアプリケーションを作成するために使用されるあらゆる言語では、重要な機能は、アプリケーションのさまざまな部分をモジュールの形でロードできることです。モジュールは、コードをより簡潔にするのに役立つだけでなく、グローバル範囲の使用を削減する役割を果たします。モジュールの内容は、明示的にロードされない限り、他のモジュールに提供されません。モジュールの重要性は、アプリケーションに限定されません。大規模なJavaScriptライブラリでさえモジュールシステムを使用してオブジェクトをモジュールとしてエクスポートし、これらのライブラリを使用するアプリケーションは必要に応じてこれらのモジュールをインポートできます。 Angular 2とAureliaはこの機能の使用を開始しました。
サンプルアプリケーションのテーマは仮想本棚です。次のページが含まれています:
Home:読み取りまたはアーカイブに移動したとマークできるアクティブな本のリストを表示します。
- 本ページの追加:本のタイトルと著者名を受け入れて、本棚に新しい本を追加します。重複したタイトルは許可されていません。
- アーカイブページ:すべてのアーカイブされた本をリストします。
- アプリケーションは、AngularJS 1.3およびES6を使用して構築されています。アプリフォルダー内のファイルを見ると、現在のモジュールからオブジェクトをエクスポートし、他のモジュールからオブジェクトをインポートするためのキーワードのエクスポートとインポートが表示されます。ここで、私たちの仕事は、これらのモジュールをBabelのGulpタスクを使用して既存のモジュールシステムの1つに変換することです。
に変換したいだけです
心配しないでください!私たちはあなたのために準備ができています。ほんの少しの微調整を行うと、以下に示すレシピは、ES6モジュールを含むプロジェクトで使用できます。ここでは角度は関係ありません。commonjs
に変換します CommonJSは、CommonJSグループによって定義されたモジュールシステムです。これは、モジュールが要求関数を使用してロードされ、モジュールオブジェクトのエクスポートプロパティを使用してモジュールがエクスポートされる同期モジュールシステムです。モジュールオブジェクトは、デフォルトですべてのモジュールで利用できるようにする必要があります。
node.jsはこのモジュールシステムを使用するため、モジュールオブジェクトをネイティブに定義し、アプリケーションに提供します。ブラウザはこのオブジェクトを定義していないため、Gapを入力するにはBrowserifyというユーティリティを使用する必要があります。また、開始する前にいくつかのNPMパッケージをインストールする必要があります。これにより、Babelを使用してGulpでブラウスライフィを使用して、ES6モジュールを共通モジュール形式の1つに変換し、ブラウザを使用する単一のファイルとしてアプリケーションをパッケージ化できます。
gulp-babel - es6コードを通常のes5
に変換します
browserify - すべての依存関係をバンドルすることで、ブラウザに( 'モジュール')を要求することができます- ビニールソースストリーム - gulp-browsifyラッパーの必要性を回避するために、browserifyモジュールを直接処理します
- ビニールバッファー - ストリームをバッファーに変換します(ストリームをサポートしないgulp-uglifyに必要です)
- gulp-uglify - 圧縮ファイル
- del - ファイルとフォルダーを削除できます
- gulp-rename - ファイルの名前を変更できるプラグイン
- タイピング:
- でこれらすべてを取得できます
<code>npm install gulp-babel browserify gulp-browserify vinyl-source-stream vinyl-buffer gulp-uglify del gulp-rename --save-dev</code>
ここで、これらのパッケージをgulpfile.jsで使用し始めましょう。すべてのES6ファイルを取得し、それらをBabelに渡すためにタスクを作成する必要があります。 BabelのデフォルトモジュールシステムはCommonJSであるため、Babel関数にオプションを送信する必要はありません。
<code>var babel = require('gulp-babel'), browserify = require('browserify'), source = require('vinyl-source-stream'), buffer = require('vinyl-buffer'), rename = require('gulp-rename'), uglify = require('gulp-uglify'), del = require('del'); gulp.task('clean-temp', function(){ return del(['dest']); }); gulp.task('es6-commonjs',['clean-temp'], function(){ return gulp.src(['app/*.js','app/**/*.js']) .pipe(babel()) .pipe(gulp.dest('dest/temp')); }); </code>
ここにはあまりにも混乱していることがないことを願っています。 APPディレクトリおよびサブディレクトリにJavaScriptファイルを取得するES6-Commonjsと呼ばれるタスクを宣言しています。次に、それらをBabelに渡し、それにより個々のファイルをES5およびCommonJSモジュールに変換し、変換されたファイルをDest/Tempフォルダーにコピーします。 ES6-CommonJSタスクには、ES6-CommonJSタスクが実行される前に、Dest Directoryとそのファイルを削除するClean-Tempと呼ばれる依存関係があります。
コードをより明確にし、モジュールシステムを指定する場合は、次のようにBabelの使用を変更できます。
<code>.pipe(babel({ modules:"common" })) </code>
これで、Uglifyパッケージを使用してBrowserifyを適用し、出力を圧縮することにより、これらの単一ファイルから単一のバンドルファイルを作成できます。次のコードスニペットにこれを示しています:<code>gulp.task('bundle-commonjs-clean', function(){ return del(['es5/commonjs']); }); gulp.task('commonjs-bundle',['bundle-commonjs-clean','es6-commonjs'], function(){ return browserify(['dest/temp/bootstrap.js']).bundle() .pipe(source('app.js')) .pipe(buffer()) .pipe(uglify()) .pipe(rename('app.js')) .pipe(gulp.dest("es5/commonjs")); }); </code>
上記のタスクには2つの依存関係があります。1つ目は、ES5/CommonJSディレクトリを削除するバンドルコモンJSクリーンタスクです。これらのタスクが実行された後、タスクは組み合わせたファイルAPP.jsをES5/CommonJSフォルダーに入れます。このファイルはindex.htmlで直接参照でき、ページはブラウザで表示できます。<code>gulp.task('commonjs', ['commonjs-bundle']); </code>
amd に変換します
ASYNCモジュール定義(AMD)システムは、名前が示すように、非同期モジュールの負荷システムです。複数の従属モジュールを並行してロードできるようになり、他のモジュールをロードしようとする前に、1つのモジュールが完全にロードされるのを待ちません。から入手できます
また、アプリケーションをバンドルするために、require.jsのGulpプラグインも必要です。これを行うには、Gulp-Requirejs NPMパッケージをインストールします。<code>bower install requirejs --save</code>
<code>npm install gulp-requirejs --save-dev</code>
<code>var requirejs = require('gulp-requirejs'); gulp.task('es6-amd',['clean-temp'], function(){ return gulp.src(['app/*.js','app/**/*.js']) .pipe(babel({ modules:"amd" })) .pipe(gulp.dest('dest/temp')); }); gulp.task('bundle-amd-clean', function(){ return del(['es5/amd']); }); gulp.task('amd-bundle',['bundle-amd-clean','es6-amd'], function(){ return requirejs({ name: 'bootstrap', baseUrl: 'dest/temp', out: 'app.js' }) .pipe(uglify()) .pipe(gulp.dest("es5/amd")); }); gulp.task('amd', ['amd-bundle']); </code>
<code> src="bower_components/requirejs/require.js" >> src="es5/amd/app.js">> > (function(){ require(['bootstrap']); }()); > </code>
結論モジュールは、JavaScriptが長い間欠いていた機能です。彼らはES6に登場しますが、残念ながら、現在のネイティブブラウザのサポートは貧弱です。しかし、それは今日それらを使用できないという意味ではありません。このチュートリアルでは、Gulp、Babel、およびさまざまなプラグインを使用してブラウザで実行できるCommonJSおよびAMD形式にES6モジュールを変換する方法を示します。
ES6については? ES6はリリース以来、コミュニティで多くの注目を集めています。 Bootstrap、Aurelia、Angular 2、および他の多くのJavaScriptライブラリまたはフレームワークを含むJavaScriptプラグインによって使用されています。 TypeScriptは、モジュールを含むいくつかのES6機能のサポートも追加します。今日のES6の学習と使用は、将来のコードを変換するために必要な努力を削減します。
ES6モジュールをAMDに変換するためのFAQ(FAQS)BABELとGULP BabelとGulpを使用してES6モジュールをAMDとCommonJSに変換する目的は何ですか? BabelとGulpを使用してES6モジュールをAMDとCommonJSに変換することは、開発者がJavaScript(ES6)を使用してコードを作成し、さまざまなJavaScriptエンジンが理解できるバージョンに変換できるプロセスです。これは、すべてのブラウザや環境が最新のES6機能をサポートしているわけではないため、特に便利です。コードを翻訳することにより、開発者はさまざまなプラットフォームでアプリケーションがスムーズに実行されるようにすることができます。 BabelはES6モジュールの翻訳をどのように翻訳しますか?ES6モジュールを使用することの利点は何ですか?
ES6モジュールは、JavaScript開発に多くの利点をもたらします。彼らは、モジュールから機能、オブジェクト、または値をインポートおよびエクスポートするための標準的な構文を導入し、コードをより整理して管理しやすくすることができます。また、静的分析もサポートします。これは、パフォーマンスを向上させ、実行時間ではなくコンパイル時にエラーをキャッチします。
翻訳されたコードをデバッグする方法は?
翻訳されたコードのデバッグは、実行されたコードが書いたコードとは異なるため、困難な場合があります。ただし、バベルはソースマッピングの形式を通じてこの問題の解決策を提供します。ソースマップは、翻訳されたコードを元のソースコードに戻すファイルであり、元のES6コードを実行しているときと同じようにコードをデバッグできるようにします。
他のJavaScriptフレームワークでBabelとGulpを使用できますか?
はい、バベルとガルプは特定のJavaScriptフレームワークに縛られていません。それらは、React、Angular、Vue.jsなど、ES6対応フレームワークで使用できます。
ES6モジュールの翻訳のためのBabelとGulpに代わるものはありますか?
はい、ES6モジュールの翻訳に使用できるバベルとガルプにはいくつかの選択肢があります。これらには、TypeScript、Traceur、およびRollupが含まれます。これらのツールにはそれぞれ長所と短所があるため、最良の選択は特定のニーズと好みに依存します。
以上がbabel&gulpを使用して、amd&commonjsにES6モジュールを導入するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

Dreamweaver Mac版
ビジュアル Web 開発ツール

メモ帳++7.3.1
使いやすく無料のコードエディター
