問題タブ [commonjs]

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.

0 投票する
0 に答える
180 参照

javascript - Javascript クライアント/サーバー モジュールの規約

クライアントとサーバーの両方で使用される Javascript ミドルウェア ライブラリを作成するための規則はありますか?

データ抽象化レイヤーがあるとします。それをJEFRiと呼びましょう。DAL を使用するアプリケーションのすべての部分が同じ実装、API などを参照できるように、JEFRi ランタイムはクライアントとサーバーの両方で同じように実行する必要があります。JEFRi には依存関係 (特にアンダースコア) があり、依存するサブモジュールがあります。それ (Mongo ストレージ、LocalStore ストレージ)。

ブラウザとノード間で最も簡単なコード共有を可能にするために使用できる最も直接的なパターンは何ですか?

そうすべき:

  • NPM を使用してサーバーにインストール可能であること
  • require()CommonJS呼び出しを使用してサーバーにロード可能
  • ender、bower、npm のいずれかを使用してブラウザー プロジェクトにインストール可能であること
  • ファイル内にライブラリの依存関係を持たない .min.js をコピーすることで、ブラウザ プロジェクトにインストールできるようにします。
  • タグを使用してページにロード可能にする<script>(およびグローバル スコープに登録する)
  • define()AMDとrequire()呼び出しを使用してページにロード可能

必要に応じて r.js を呼び出すなど、任意の数のビルド ステップが許容されます。

0 投票する
2 に答える
1584 参照

node.js - node.js 良い継承方法

これは良いコードと見なされますか? よりクリーンな/より良い方法はありますか? そのため、子クラスは、ストレージ メカニズムから実際にデータを取得する方法について何も知りません。これらのメソッドを使用して機能を構成できるようにするだけです。

base.js

child.js

test.js

0 投票する
1 に答える
641 参照

javascript - Titanium design advice

While learning Appcelerator Titanium, I'm building an app that starts with a Window that contains 2 labels. The two labels (onclick) should open 2 different Windows (each containing tabgroups).

So, in my app.js I have:

and in my ApplicationWindow function:

The first question is: is this a good design? Is it improvable? How?

The second question is: is there a way to show the page I'm opening before the end of the transition? At the moment it seems the JS contained in A.js and B.js is executed only when the animation stops.

Thanks, any help is welcome and sorry for the newbie question.

[EDIT] This is my current code after Ch4rAss's comment:

and:

0 投票する
2 に答える
202 参照

backbone.js - require.js を使用する 1 つの Backbone.js アプリが別のアプリに依存しています: 子を含めるにはどうすればよいですか?

私は、require.js を使用し、models/、collections/ などで分割された backbone.js アプリを作成しました。次に、最初のアプリに依存する別のアプリを作成しました (および他のいくつかのもの。ファイルは次のようにレイアウトされています。

appA を要求するには、needsA に何を入れますか? 以下は私には論理的に思えますが、機能しません。../../appA を使用すると、appA が見つかりますが、ルートが間違っているため、IT の依存関係が見つかりません。

0 投票する
6 に答える
10457 参照

javascript - CommonJSとAMDの両方をサポート

次のすべてのモジュール形式をサポートするjavascriptマイクロライブラリ(依存関係のないライブラリ)を作成する方法はありますか?

  • 非同期モジュールの定義
  • CommonJS
  • ライブラリのエクスポートをグローバル名前空間オブジェクト(ローダーなし)として公開する
0 投票する
1 に答える
84 参照

javascript - coffee -cj は各クラスの module.exports を上書きします

私はこれがどのように機能するかについて頭を悩ませることができません.CoffeeScriptでクラス/モジュールを定義するかなり一般的な方法module.exports = class MyClassは、ファイルの先頭で使用することです。また、コーヒー コンパイラがこのパターンを容易にするだろうと推測します。このミニマリストの例を見てみましょう:

次に、2 つをコンパイルして結合します。

結果は all.js で、モジュールごとに module.exports が再定義/上書きされます。

ここでこれを実行しようとすると、Foo モジュールが見つからないというエラーが表示されます。これは、最後のモジュール (ここでは Bar) がそれ自体のみを含むように module.exports を再定義しているためです。

これは非常に初歩的な質問だと思いますが、どこにも良い答えが得られないようです。

0 投票する
1 に答える
585 参照

javascript - CommonJS の require 関数が非同期でないのはなぜですか?

CommonJS モジュールをロードしている間require、同期のステートメントを使用します。しかし、モジュールをロードするのに、ディスクからそれらを読み取って解釈する必要はありません。では、非ブロッキング I/O を提唱しているセットアップでは、require 同期はどのように行われるのでしょうか?

アップデート:

私はクライアントで requireJS を見たり使用したりしており、その非同期の性質を高く評価できます。私が知りたいのは、サーバーでこの種のことを行うことが広まっていない理由です (requireJS を Node で使用できることは知っていますが、それは重要ではありません)。

また、コード内でモジュールのインライン化を要求するとコードがブロックされるかどうか、およびこれが悪い習慣であり回避する必要があるかどうかも知りたいです。

0 投票する
2 に答える
6033 参照

javascript - Nodejs:オブジェクト間のイベントリスニングを処理するには?

現在、別のオブジェクトをリッスンする必要があるオブジェクトがあるという問題があります。

問題は、サブスクリプションをどのように処理すればよいかということです。現在、私は2つの可能な方法しか知りません:

登録者の場合:

コンストラクターで:

ご覧のとおり、どちらの方法もそれほどきちんとしたものではありません。この問題に使用できる別のパターンはありますか?

PS:

例が抽象的すぎるように見える場合は、ソースを次に示します。

https://github.com/bodokaiser/documents/blob/master/lib/repository.js

コンストラクターをチェックして、私の不幸を確認してください:)

0 投票する
2 に答える
19174 参照

javascript - Uncaught ReferenceError:requireが定義されていません

私が取り組んでいるプロジェクトでは、JavaScriptライブラリの寄せ集めを使用しています。私のコードのメインロジックは、複数のcommonjsモジュールに分割されています。私はグーグルクロージャーを使用して、モジュールをAngularJSアプリケーション内で使用する1つの出力jsファイルに結合します。

私が抱えている問題は、testacularでテストを実行しようとしていることです。私が受け取るエラーはですUncaught ReferenceError: require is not defined。これは、googleクロージャーとは異なり、testacularがcommonjsモジュールを理解しないために発生しています。いくつかの回避策がありますが、コードを再構築せずに機能させることを望んでいました。

  1. commonjsを使用しないように、モジュールを再構築できます。一歩後退したような気がするので、私はこれが好きではありません。コードをモジュール化したい。
  2. 私はグーグルクロージャーからコンパイルされたjsでtestacularを実行することができます。このようにしてもかまいませんが、ファイルの変更を処理するためにすべてをトリガーすることはできませんでした。Testacularはファイルの変更時にそれ自体を再実行できますが、変更時にgoogleクロージャーを再コンパイルする方法はとにかく見ていません。
  3. 最後に、testacularでcommonjsモジュールを有効にできます。理想的にはこれが私が行きたい方法ですが、それは最も簡単ではないかもしれません。

他の誰かが同様の問題に遭遇しましたか?私はさまざまなことを試してみることを心がけています。私はただハッキーなものは欲しくない。

javaclassstreamreader.spec.js:

javaclassstreamreader.js:

0 投票する
2 に答える
30978 参照

javascript - 非同期 JavaScript - コールバックと遅延/約束

重複の可能性:
Javascript の Deferred、Promise、Future の違いは何ですか?

最近、私は自分の JavaScript アプリケーションの品質を向上させる努力をしています。

私が採用した 1 つのパターンは、別の「データ コンテキスト」オブジェクトを使用して、アプリケーションのデータをロードすることです (以前は、ビュー モデルで直接これを行っていました)。

次の例は、クライアントで初期化されたデータを返します。

ほとんどの場合、サーバーからデータをロードするため、すぐに応答を返すことはできません。API でこれを処理する方法には、次の 2 つのオプションがあるようです。

  1. コールバックの使用
  2. 約束を返す。

以前は、常にコールバック アプローチを使用していました。

ただし、特に複雑な JavaScript アプリケーションを構築する場合は、コールバック地獄に陥る可能性があることがわかります。

その後、Promises デザイン パターンに出会いました。呼び出し元にコールバックを提供するよう要求する代わりに、観察できる「約束」を返します。

このパターンを使用する利点は明らかです。特に、wait複数の遅延オブジェクトを使用できるため、単一ページ アプリケーションの初期化データをロードするときに非常に便利です。

ただし、怒りでどちらかを使い始める前に、各パターンの長所と短所を理解したいと思っています. これが他のライブラリの方向性であるかどうかにも興味があります.jQueryの場合はそうです。

これは、テストに使用しているフィドルへのリンクです。