問題タブ [es6-module-loader]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 動的 ES6 モジュール スコープ
現在のすべてのモジュール ローダーはAMD,CommonJS,SystemJS
、外部オブジェクトを現在のモジュール スコープにロードするために変数定義を使用するのと同様です
お気に入り:
また:
外部モジュールから何をインポートする必要があるのか わからない場合、またはすべてをインポートする必要がある場合、実行時に変数を定義できないため、これが問題になります。
これが ES6 トランスレータが使用しない主な理由だと思います
構文であり、これらは ES6 仕様には含まれていません。
したがって、動的モジュールスコープとは、モジュール変数を実行時に定義/ロードできることを意味します。これにより、ES6 構文を次のように拡張できます。
私の見解では、これは、次のようなすべての名前をリストするよりも、インポートを定義するためのより最適な方法です。
今私の本当の質問:
with
これを達成するために使用しないのはなぜですか?
問題を解決できる ES6 から ES5 への簡単な変換例を次に示します。
ファイル: modules/module-1.js
に:
ファイル: modules/module-1.js
に:
with
トランスパイラー/ローダーでも避ける必要は本当にありますか?
私は別の ES6to5 トランスレータとモジュール ローダーを作成することを考えているので、この人たちについてのあなたの考えに感謝します。:)
ecmascript-6 - ES6、AMD、および CommonJS でのモジュールのロードの違いは何ですか?
互換性の問題 (さまざまなブラウザー、縮小化など)、パフォーマンス、読みやすさ/保守性に特に注意しながら、以下の違いについて詳しく知りたいです。
ES6:
export
とexport default
構文import {module1, module2} from
。AMD
define()
構文。CommonJS
require()
構文。
広く採用されている、より一般的なものはありますか? 大会はどこに行きますか、またその理由は? ES6 は急速に変化しているように見えるので、ES6 の次は何ですか。ES6 のモジュール ロード構文を現状のままにする歴史的な理由/動機はありますか?次は何ですか?
javascript - ES6 Module Loader の単純な import ステートメントと System.import の違い
ES6 モジュールローダー (または System.js、Webpack などのポリフィル) の単純なステートメントimport
とステートメントの違いを説明できる人はいますか?System.import
何かのようなもの
単純なだけでなく、可能であるようです
System.import
import ステートメントの後にコールバックを持つ唯一の可能性はありますか?
javascript - ES6 インポートと角度コントローラーの初期化順序
ES6 で実行される AngularJS アプリケーションの取得に取り組んでいました。歴史的に、私はコントローラ ファイルがアプリケーションに自身を登録できるようにするパターンを使用してきました。この方法では、ファイルが定義するコントローラ、サービスなどについて心配する必要がないからです。require() を使用することで、依存関係と初期化を簡単に順序付けて、コントローラー ファイルに集中できるようにすることができました。
ES6 への移行を検討し、require() ではなく import を使用すると、順序に依存するコードが機能しなくなっていることがわかりました。添付されているのは、私がやりたいことの大まかな近似 (決して実行しない) バージョンです。
私が理解した唯一のことは、RegisterIndexController() 関数を index.js からエクスポートして、app.js から呼び出すことができるということです。これは機能しますが、依存関係を別の方法でプッシュできるかどうか疑問に思っています。app.js から "app" をコントローラーに渡すことができる場所
app.js
index.js
index.html
angularjs - SystemJS を使用して角度のある TypeScript を内部モジュールにバンドルする方法
角度のあるプロジェクトの一部を typescript に移行し、内部モジュール/名前空間に問題があることを検討しています。
この作業例を github に投稿しました: https://github.com/hikirsch/TypeScriptSystemJSAngularSampleApp
手順:
これはアプリケーションの要点です: index.ts
例Ctrl.ts
ExampleTwoCtrl.ts
述べたように、これはすべてうまく機能します。しかし、次のような名前空間の下にすべてを置きたいと思います。
そして、次のように使用します。
これにより、gulp バンドル タスクを実行して正しくコンパイルされますが、ブラウザでエラーが発生します /// ///
ブラウザ エラー:
javascript - グローバルjQueryを必要とするjspm / system.jsでインストールされたBootstrap Pluginをshimする方法
私は jspm と system.js で動作する ES6 セットアップを持っています。npm または github を介して Boostrap をインストールしても、Bootstrap に必要なファイルが (もう) 提供されないため、そのエンドポイントが必要です。
ただし、いくつかの Bootstrap プラグインを使用したい (つまり、折りたたみ)。AMD や CommonJS 構文を持たない単純な jQuery プラグインであるため、グローバルに jQuery が必要です。
それを達成するためにsystem.jsのconfig.jsファイルをシムする方法はまったくわかりません。このようなカスタムオーバーライドを渡すことができます
これは、jQuery プラグインをシムする「公式の方法」のようです。
ただし、単一のプラグインだけでなく、複数のフォルダーとファイルを含むフレームワーク全体をインストールしています (したがって、上記のように、Bower エンドポイントを介して jspm の Bootstrap がインストールされます)。
助言がありますか?
javascript - ES6/2015 モジュールのインポートを使用して、参照を「グローバル」スコープに設定できますか?
troublesome
(Webpack/Babel FWIWを使用して)呼び出す既存のライブラリをインポートしようとしているこの状況があり、jQuery
モジュール構文を使用して解決しようとしているグローバル参照があります。
次の方法で、jquery をモジュールの「ローカル」スコープに正常にインポートしました。
だから私は試しました:
jQuery is not a function
しかし、おそらく驚くべきことではありませんが、キックバックのようなものが得られますtroublesome.js
私もこれを試しました:
System.import
しかし、これは es6/2015 仕様から引き出された、いわゆる「モジュールローダー」仕様の一部であることが判明したため、Babel では提供されません。poly-fillがありますが、Webpack は への呼び出しを介して実行される動的インポートを管理できませSystem.import
ん。
しかし...次のようにindex.htmlでスクリプトファイルを呼び出すと:
への参照jQuery
は解決されてtroublesome.js
おり、問題はありませんが、スクリプト タグ ルートは webpack で管理されないため、避けたいと思います。
このようなシナリオに対処するための適切な戦略を推奨できる人はいますか?
アップデート
@TN1ck からのガイダンスにより、最終的にimports-loaderを使用して、Webpack 中心のソリューションを 1 つ特定することができました。
このソリューションの構成は次のようになります。