問題タブ [amd]
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 - amdで使用するアンビエント定義のみを使用してTypeScriptモジュールをインポートします
に依存するモジュールがありますBackbone
。私はbackbone.d.ts
定義を持っていますが、TypeScriptは私のモジュールをコンパイルしたくないようです
実際には、定義ファイルではなく、有効なバックボーンモジュールを指しています。AMDがロードされたモジュールを使用しており、バックボーンにrequirejsシムが定義されています。
電話のbackbone.tsモジュール定義を作成する以外に回避策はありますか?
更新:ソリューションの副作用は、モジュールが存在しなくなったため、このようなコードが機能しなくなることです。requirejsシムのために存在する必要があります。私が知っている唯一の回避策は、2つの.d.tsファイルを用意することです。declare module
1つは、ビットを含まないインポートとしてバックボーンを使用するファイル用です。もう1つ/// <reference
は、declare module
行を含むを使用するためのものです。
javascript - Javascript クライアント/サーバー モジュールの規約
クライアントとサーバーの両方で使用される Javascript ミドルウェア ライブラリを作成するための規則はありますか?
データ抽象化レイヤーがあるとします。それをJEFRiと呼びましょう。DAL を使用するアプリケーションのすべての部分が同じ実装、API などを参照できるように、JEFRi ランタイムはクライアントとサーバーの両方で同じように実行する必要があります。JEFRi には依存関係 (特にアンダースコア) があり、依存するサブモジュールがあります。それ (Mongo ストレージ、LocalStore ストレージ)。
ブラウザとノード間で最も簡単なコード共有を可能にするために使用できる最も直接的なパターンは何ですか?
そうすべき:
- NPM を使用してサーバーにインストール可能であること
require()
CommonJS呼び出しを使用してサーバーにロード可能- ender、bower、npm のいずれかを使用してブラウザー プロジェクトにインストール可能であること
- ファイル内にライブラリの依存関係を持たない .min.js をコピーすることで、ブラウザ プロジェクトにインストールできるようにします。
- タグを使用してページにロード可能にする
<script>
(およびグローバル スコープに登録する) define()
AMDとrequire()
呼び出しを使用してページにロード可能
必要に応じて r.js を呼び出すなど、任意の数のビルド ステップが許容されます。
node.js - 再利用可能なモジュラー CoffeeScript プロジェクトのセットアップ方法
私は再利用可能なモジュールに変えたいと思っている CoffeeScript プロジェクト (jAddressParser と呼ばれる)を持っています。残念ながら、既存のプロジェクトとの適切な相互運用性を維持しながら、そのような目的で CoffeeScript をモジュール化する方法についてはあまり詳しくありません。
問題のプロジェクトはアドレス文字列を解析します-確かに短い順序ではありません。しかし、私が取り組んでいるプロジェクトの目的のためには、この戦略は機能するはずであり、他の誰かがそれから恩恵を受ける可能性があり、おそらく他の人が何らかの有用な貢献をする可能性があります. 全員勝利!
だから私が持っているのは、次のようなディレクトリに配置されたコードです:
理想的な世界では、私のワークフローは次のようになります。
コマンド ラインから上記の JavaScript をテストします。Node.jsが最も適した方法だと思います。
/src
ファイルをファイルにコンパイルし/build/jAddressParser.js
ます。これにはr.jsがうまく機能すると思います。すべての準備が整ったら、を Web プロジェクトにコピーします
jAddressParser.js
。/build
jAddressParser を適切な
requirejs
呼び出しで Web プロジェクトに含めます (つまり、AMD 対応になります)。require(['jAddressParser'], -> ...)
依存関係 (lodash、requirejs、require-cs、XRegExp、CoffeeScript) を含める必要があるように思われるので、特定のバージョンを/lib
ディレクトリに配置するか、git サブモジュールを使用してこれを行うことを期待しています (サブモジュールは少しやり過ぎのようですが)。このような小さなプロジェクトの場合)。
私は再利用可能なCoffeeScriptモジュールを作成したことがなく、基本的に、Webモジュールに対して同じことを実行する方法に関する適切なリファレンスを見つけることができませんでした(node.jsのみのプロジェクトには適切な例がいくつかあるようです-私は考えましたもっと多くのリストを見たいと思っています)。上記の提案の実行可能性に光を当てる可能性のある考えや参考文献、またはそのようなプロジェクトを組織する方法について教えていただければ幸いです。
backbone.js - require.jsを有効にしたyeomanでBackboneアプリをブートストラップする方法
しばらくヨーマンと遊んでいます。バックボーンアプリケーションのブートストラップとrequire.jsの有効化を同時に行うにはどうすればよいのでしょうか。
AMDスタイルのモジュールを操作できるセットアップを提供してくれます。
バックボーンスキャフォールドを提供しますが、すべてのモデル、コレクションなどを手動でindex.htmlに「含める」必要がありました。
両方を持つ方法はありますか?
よろしくフェリックス
javascript - CORS 経由でリモート AMD 互換モジュールをロードしていますか?
私は現在、どのプロジェクトにも AMD を使用していませんが、サードパーティのサイトで定義されている可能性のあるプラグインを実行時にユーザーがロードできるため、大量の JavaScript ファイルを動的にロードする必要があります。
ただし、現在、yepnope を使用してほとんどすべてのリソースを動的にロードしているため、AMD がどのように役立つかを検討しています。これは正常に動作し、リモートプラグインをロードしたい場合は、yepnope に記述子と必要なファイルをフェッチするように動的に指示できます (これは手作業で作成したプラグイン システムなので、あまり気にする必要はありません)。したがって、シナリオでは、使用されるローカル モジュールが多数あるだけでなく、新しいモジュールを動的にロードすることもできます。
私の理解では、AMD に関する限り、定義をファイルに記述してから、AMD 互換のローダーをいくつか含めて、コード内の基礎となるモジュールにアクセスしたい場所 (コールバック内) に必要なメソッドをスプラッタします。require("some/module/name")
AMD互換のローダーがtosome-module-name.js
またはそれが何であれマッピングを処理すると私は信じているので、答えはフレームワークに依存することになるかもしれません。これがすべてのローダーに当てはまると仮定すると、デフォルトパスから離れた場所にあるモジュールをロードしたいというユースケースにどのように対処できますか?
繰り返しますが、これがフレームワーク固有のものである場合は申し訳ありません。質問を「CURLなどでどのように行うのですか」に変更して喜んでいますが、すべてを100%理解しているわけではないので、 AMD互換バブル。
javascript - シングルページ アプリケーションで AMD を使用して特定の依存関係のみを読み込む方法
私が理解していることから、ロードされる依存関係を管理する AMD を使用する利点の 1 つですが、require.js を使用する単一ページ アプリケーションでは、すべての依存関係がロードされます。
たとえば、バックボーンなどを使用して、次のファイルがあるとしましょう
main.js には router.js が必要です
router.js には view_a.js と view_b.js が必要です
router.js はビューをレンダリングします
example.com/#view_b
ここで、 のコードのみが必要で、 のコードはview_b.js
何も使用しないに行くとしましょうview_a.js
。view_b.js
とにかくrequire.jsなどを使用し てロードするか、ロードを優先する方法はありますか?
ajax - ある Dojo AMD モジュールから別の Dojo モジュールに情報を渡す
私は Dojo 1.8 のモジュールで遊んでおり、次のように定義されたモジュールがあります。
そのメソッドを呼び出して使用したい別のモジュールがあります。
当然、DOM 作成コードを util モジュールに入れることもできますが、それは本来あるべきではないビュー ロジックを混在させています。そして、util.getDirList メソッドを再利用したい場合は恐ろしいことです。
そのメソッドによって返される JSON を使用するにはどうすればよいですか? 他の誰かがこれをやっていますか?
javascript - 約束としてモジュールロードを実装することは可能ですか?
ユーザーがレポートを作成できるシングルページアプリケーションを作成しました。ユーザーには、データソース、グラフの種類、テーマを選択できるフォームが表示され、確認すると、ページに必要なファイルが読み込まれ、グラフが描画されます。
パフォーマンスを向上させるために、コードモジュールとデータを並行してロードしたいと思います。たとえば、ユーザーが「円グラフ」、「青のテーマ」、「航空会社の統計」を選択した場合:
(jsモジュールの円グラフが読み込まれる)および(青いテーマのcssが読み込まれる)および(Airline Stats jsonが読み込まれる)
THEN(チャートを描く)
AMDを実装するライブラリと、Promiseを実装するライブラリをいくつか見つけましたが、上記の例のようにモジュールの読み込みとPromiseを組み合わせることができるライブラリはありません。これは可能ですか?すでにこれを実装しているライブラリはありますか?
私のニーズはクライアントサイドのJavaScriptです。
javascript - マップが必要: 拡張機能のマッピング時にモジュールのタイムアウトを取得する
Mediator-Sandbox ライブラリと、このライブラリの上に構築された Router 拡張機能を入手しました。
ライブラリは次のように構築されます。
拡張子は次のようになります。
拡張機能をロードするために必要な構成は次のようになります。
完全なライブラリを次のように使用できるようになりました。
マップ構成のコメントを外すと、次のようにルーター拡張機能を備えた完全にロードされたモジュールを使用できるようになります。
モジュールのタイムアウトが発生するよりも。
私は何を間違っていますか?
javascript - Backbone.js ベースのアプリで 401 をきれいにフェッチする方法
私の Backbone.js ベースのアプリでは、基になるリクエストが無効な認証トークンなしで、または無効な認証トークンで行われた場合に、401 で応答する API と通信しています。401 を受信するたびに #login ページに移動するように設定したいと思います。
401 を取得するために、Backbone.sync を正常にラップしましたが、その時点で行き詰まりました。ここでいくつかの戦略を試しました:
throw 'unauthorized'
Backbone::sync でダウンして、ルーターで取得しようとします。失敗しました:「未承認の未承認」Backbone::sync でダウンしようとする
#.navigate '#login'
と、奇妙に見えるだけでなく、アプリが AMD/require.js に基づいており、ラップされた関数で Backbone.Router インスタンスに簡単にアクセスできないという問題が発生しsync
ます。
define
これまでに見た唯一の解決策は、ルーターインスタンスへの参照を取得し、必要に応じて依存関係として配置される「グローバルに利用可能な」キャッシュオブジェクトを作成することです。そのキャッシュ オブジェクトはシングルトンでなければならず、私の「please-no-globals-and-no-namespaces」戦略全体を破りました。
私はここで立ち往生しています。その一般的な問題に対するよりクリーンな解決策を教えてくれる人はいますか?