問題タブ [traceur]
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 - どうすれば (本当に!) JavaScript 非同期呼び出しを (Chrome 上で) 同期させることができますか?
いくらか似たような質問が何度も出されていることは承知していますが、非同期呼び出しを真に同期させる必要があります。通常、AMD を非同期で使用する必要がありrequire
、渡されたコールバックが実行された後に、いくつかの呼び出しを同期的に実行する必要があります。クロムで動作させるだけで十分です。このトリックは ES6 yield
/で実行できるようawait
です。残念ながら、クロムyield
が必要なようです。traceur
実際、軽量で最小限のソリューションを用意し、ライブラリのフットプリントが大きくならないようにしたいと考えています。
これを実装するための最低限のソリューションは何ですか?
javascript - Traceur (ES6 Transpiler) ランタイムはどこにありますか?
私は ES6 に興奮しており、Traceur コンパイラを使用してウォームアップしたいと考えています。簡単なクラスの例を次に示します。
トランスパイルしてサンプルを (ノードで) 実行しようとすると、次のエラーが発生します。
エラー: モジュール 'traceur-runtime' が見つかりません
ランタイムは traceur の npm インストールに含まれていますか? はいの場合、それはどこにあり、どのように含める必要がありますか? ランタイムを含めずにコードを実行することはできません...
javascript - Traceur コンパイラ: 正規化 / 解決
私が理解したように、2 つの方法で traceur コンパイラを使用できます。
- スクリプトをコンパイルしてから、既にコンパイル済みのアプリに含める
- ブラウザで使用
traceur
して、すべてのスクリプトがアプリの実行時に変換されるようにします
では、どのように正規化関数と解決関数を使用できますか? 私が知っているように、それらはシステム名前空間に保存する必要があります-System.normalize = function(){...}
そしてSystem.resolve = function(){...}
それらを追加しましたが、呼び出されませんでした。
javascript - 本番用の Traceur コンパイラ
本番環境で使用する準備はできていますか? 特に大規模なアプリケーションの場合。
私が理解しているように-はい。しかし、詳細を取得することは素晴らしいことです。
また、次の 2 つの使用方法があります。
- ランタイム
- プリコンパイル
プリコンパイルよりもランタイム実行にかかる時間はどれくらいですか? 私がテストしたところ、x10-15 倍近くになっていますが、誰か他の情報を持っているのではないでしょうか?
ecmascript-6 - コンストラクターでの Traceur スーパー コール
クラス コンストラクターでの super() の呼び出しに関連していると思われる Traceur の問題に直面しています。問題を次のコードに減らすことができました。
これにより、「未定義は関数ではありません」というメッセージとともに ModuleEvaluationError が発生します。私は何か間違ったことをしていますか、それともこれはバグですか?
super();
明確にするために-呼び出しをコメントアウトすると、問題は解決します
ecmascript-6 - ES6 クラスで配列を拡張する
ES6 が最終的に Array のサブクラス化を許可するようになったと聞きました。によって与えられた例を次に示します。
確かに、それはうまくいきます。しかし、少なくとも Traceur では、長さを明示的に設定しても配列は切り捨てられません。また、console.log を介して出力すると、出力は配列形式ではなくオブジェクト形式になります。これは、誰かがそれを「実際の」配列と見なしていないことを示唆しています。
これは、Traceur が組み込みオブジェクトのサブクラス化を実装する方法の問題ですか、それとも ES6 の制限ですか?
traceur - 開発中の実行時にトレーサーをコンパイルする
angularjs アプリの開発中に実行時に ES6 をコンパイルしたいと思います。http-server が起動する前に traceur を実行できますが、開発中は面倒です。
これを設定するにはどうすればよいですか?
PS: この段階では grunt を使用していません。する必要があるかもしれないと思います。