タグ付けされた質問 「es6-modules」

ECMAScript 6(2015)で導入されたJavaScriptの標準モジュールシステム。

1
Rails 6でJasmineを設定する方法は?
アプリ用に作成したJavascriptモジュールをテストできるように、Rails 6環境(WebpackがJavaScriptのアセットパイプラインを置き換える)でJasmineを構成するにはどうすればよいですか? 私はジャスミンのgemをインストールして実行しrails generate jasmine:install、jasmine.ymlJavaScriptソースと仕様の場所を指すように編集しました。 問題は、インポート/エクスポートステートメントを使用できないことです。(例えば、クロムでこのエラーのテスト結果に自分の最初のモジュールをロードしようとします。Uncaught SyntaxError: Unexpected token 'export') 私が言えることから、私はジャベルをセットアップしてbabelを使用する必要があります。しかし、私は新しいRails 6レイアウトでこれを行う方法についての説明を見つけることができません。

2
ES6モジュールのインポートを介してレガシーJSモジュール(例:IIFE)をロードして使用する
私が持っている生命維持の IE10 +(ノーES6モジュールのロードなど)のために働く必要があるとレガシー・アプリケーションのライブラリのコードの一部についての機能を。 しかし、私はES6とTypeScriptを使用するReactアプリの開発を開始しており、ファイルを複製せずに既存のコードを再利用したいと考えています。少し調べた結果、UMDパターンを使用して、これらのライブラリファイルを<script src=*>インポートとして機能させ、ReactアプリがES6モジュールの読み込みを介してインポートできるようにしたいと思いました。 私は次の変換を思いつきました: var Utils = (function(){ var self = { MyFunction: function(){ console.log("MyFunction"); } }; return self; })(); に (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (factory((global.Utils …

2
ES5モジュールでのES6インポートのサポート
初年度の学生のために、私は明らかにモジュールパターンを使用して書かれたシンプルなES5ベースのライブラリを提供しました。以下は、「メイン」モジュール/名前空間のスニペットで、他の拡張機能を収容します。 window.Library = (function ($) { if (!$) { alert("The Library is dependent on jQuery, which is not loaded!"); } return {}; })(window.jQuery); これは、Web開発に不慣れで、ES6などのファンシーなものをWebpackやBabelと組み合わせて使用​​していない学生のほぼ99.9%に役立ちます。 0.1%から、適切にインポートできるES6ベースのバージョンを提供するように要求されました。私はこれを提供できれば幸いですが、これに最善のアプローチをする方法にちょっとこだわっています。 私は明らかにES5の方法を維持したいので、生徒はスクリプトタグを使用してファイルを含め、Library.SomeExtension.aFunction();好きな場所に入力することができます。その上、一部の拡張機能はjQueryに依存しており、jQueryは上記のスニペットと同様の方法で挿入されます。 現在、jQueryを依存関係として使用して、1つのコードベースで両方の世界を最大限に活用するための保守可能な方法を探しています。99.9%をa window.Libraryにしたいのに対し、0.1%に使用方法を与えたいimport Library from 'library'。 両方を行う単一のJSファイルでこれを実現できますか?それとも特別なES6バージョンが必要ですか(問題はありません)?そして何よりも、両方の状況をサポートできるように、コード(すべて上記のスニペットと同様)をどのように改造しますか? どんなポインタでも大歓迎です! 編集:ただ、サイドノートとして、私はすでに持っているgulpfile.jsこのによるライブラリ走る場所でBabel、minifiers他のものを。したがって、上記の問題を解決するためにそれを拡張する必要はありません!
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.