問題タブ [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 投票する
1 に答える
1973 参照

titanium - AppceleratorおよびCommonJSモジュール(キャッシングおよび循環参照)

つまりね:

CommonJSの方法でモバイル(iPhone / Android)アプリケーションをモジュール化しています。そこに驚きはありません。しかし、頭を動かすことができないことが1つあります。

CommonJSを使用すると、STATICプライベート変数を作成できます。これにより、シングルトンを簡単に作成できます。これは、少なくとも、require()dを取得するファイルの内容が一度だけ読み取られ、その後、エクスポートオブジェクト(一度だけ初期化される)が毎回返されるためだと思います。

しかし、以下に示すように循環参照を作成すると、含まれているモジュール内のコードが毎回実行されます。

待ってください... 面白いことに、この質問を書いているときrequire()に、次の呼び出しが始まる前に終了する呼び出しがないことに突然気付きました(したがって、スタックオーバーフローを以下に示します)。

私が順調に進んでいるかどうかについて何か考えはありますか?ここは午前5時を過ぎているので、私に関する限り、すべての賭けはオフになっています:D。

例:

このコードを参照してください。シングルトンを定義しています。

私はrequire()このファイルをそのようにしています:

出力は次のとおりです。

それでは、なぜ次のような循環参照が機能しないのですか?(私はすでにこれを自分で答えたかもしれません、あなたが望むならそれについてコメント/答えてください)。

app.js

Pinapple.js

Banana.js

出力は次のとおりです。

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

javascript - CommonJS を使用して Spine で Stylus を要求するにはどうすればよいですか?

Spine アプリで Stylus が提供するJavaScript APIを使用したいと考えています。

これを行うには、Stylus が必要です。

Stylus は Hem の依存関係であるため、index.coffee でそれを要求しようとしました。

しかし、これはエラーになりました:

次に、package.jsonにStylusを個別に含めてみました

そして私のslug.jsonで

しかし、これによりサーバーログにエラーが発生しました:

Stylus を要求し、Spine でその API を利用するにはどうすればよいですか?

0 投票する
3 に答える
6733 参照

javascript - CommonJSモジュールのJava7+ Rhino 1.7R3サポート?

CommonJSをJava7とRhino1.7R3で動作させるためのサポートが必要です。

Rhino 1.7R3は、CommonJSモジュールをサポートしています。

また、Java7にはRhino1.7R3がバンドルされています。org.mozilla.javascript.commonjs残念ながら、Java 7のRhinoは変更されたバージョンであり、次のパッケージは含まれていません。

javax.script次のように、APIを介してRhino1.7R3のCommonJSのサポートを使用したいと思います。

ScriptEngineManager実際にRhino 1.7R3エンジンを使用していることを確認しました。)おそらく、クラスパスに次の依存関係を追加するだけでよいと思いました。

CommonJS(具体的には)がrequire()機能し始めます。しかし、そうではありません。使おうとするrequire()

CommonJSサポートを利用できるようにJava7をRhino1.7R3のフルバージョンで動作させるにはどうすればよいですか?

編集:私はまったく同じトピックを扱っている次の質問を見つけました:

健全性チェック:Rhinoにはrequire関数がありませんよね?

回答者は、限定されたRhino1.7R3をCommonJSRhino 1.7R3に置き換えることは可能かもしれないと示唆していますが、それをどのように行うかについては述べていません。それが私がここで求めていることです。

0 投票する
3 に答える
3109 参照

node.js - CoffeeScriptとNodeJS:複数のクラスをエクスポートするにはどうすればよいですか?

Dogいくつかのクラス、たとえば、をエクスポートしたいと思いCatます。これを実行する1つの方法は次のとおりです。

クラス名を2回入力せずに、同様のことを行うにはどうすればよいですか?

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

javascript - WinJS.Promise が期待どおりに機能しない

Windows 8 JavaScript アプリで作業していますが、WinJS.Promise が期待どおりに機能しません。これが私の非同期メソッドです...

そして、これが私がそれを呼んでいるものです...

これはボタンクリックです。ボタンをクリックした後、ステータス div が「作業中」と非常に短く言うことを期待しますが、5 秒間「無料」と言い、5 秒の遅延が完了すると最後に「完了」と言うでしょう。代わりに、UI スレッドが 5 秒間ブロックされ、ステータス div に「free」と表示されます。

ステータスを「free」にする行まで実行が戻ると思っていたのですが、デバッグするとその前にpromise関数にヒットしていることが分かります。そのため、ステータスは 5 秒後に「完了」に設定され、その後「無料」に設定されます。言い換えれば、私の非同期関数は単に非同期的に動作していません。

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

asynchronous - モジュールの非同期の問題-チタン

モジュール(mapview、network、geolocationsなど)を作成しようとしていますが、非同期の問題に直面しています。たとえば、geolocation.jsがあります。

//現在の位置情報サービスを使用する許可をユーザーに求めます

//現在の場所を取得します(1回起動します)

Titanium.Geolocation.getCurrentPosition(function(e){

}

app.jsから呼び出したい:var location = require('/ geolocation'); var latlon = location.getLocation(); ただし、getCurrentの位置は非同期であるため、「return lat+lon」を使用するとnullになります。コールバックを試しましたが、getLocationの値を返すことができません。この非同期関数を管理する一般的な方法はありますか?

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

android - Titanium:commonjsモジュール内にモジュールが必要です

ネイティブまたはWebモジュールの代わりにCommonJSモジュールを作成できることを発見しました(Titaniumフォルダーを見て、ti.cloudモジュールを検索してください)。しかし、それを説明する私が見つけることができるドキュメントはありません...

そこで、Titaniumフォルダー「commonjs」内に独自のCommonJSモジュールを追加し、「require」を使用してアプリケーションにインポートしようとしました。それは魅力のように実行されます。

ここで、CommonJSモジュールに他のファイルをいくつか追加し、モジュール内でモジュールが相互に参照するようにします。

たとえば、私のアプリには次のものがあります。

  • main.js
  • ui
    • CommonView.js

この構造では、main.jsが私のメインモジュールであり、モジュールCommonView(require('./ ui / CommonView'))を要求しようとするメソッドcreateCommonView()がありますが、コンパイラーはモジュールが見つからないと文句を言います。

相互に参照する複数のモジュールでCommonJSモジュールを作成するにはどうすればよいですか?

正確には、これらのモジュールをプロジェクト内にコピーしたくありません。すべてのプロジェクトで利用できるように、それらをTitaniumフォルダーに保持したいと思います。

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

javascript - Closure Compiler は CommonJS モジュールをビルドできますか

Google Closure Compilerを使用してCommonJSモジュールのセットを構築したいと考えています。これは箱から出して行うことができますか?または、CommonJS モジュールを Closure Compiler で使用できるようにする簡単な変換はありますか?

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

javascript - Node.js およびクライアントと連携する CommonJS 構造を使用する Backbone.js アプリケーション

Javascript モジュールを必要とすることができる CommonJS 構造を使用して、BackboneJS アプリケーションで記述する方法を検討しています。このアプリケーションは、ノードを使用してクライアント側またはサーバー側で動作する可能性があります。

私はrequirejsやその他の同様のオプションを調べましたが、私の意見では本当に面倒に見える特定の方法でアプリを作成する必要があります.

また、コードと必要なモジュールを取り、欠落している (必要な) メソッドを含む単一の js ファイルに結合するbrowserifywebmakeも調べました。すべてが巧妙なアイデアですが、クライアント側のコードは少し面倒です。

commonJS 形式で記述されたコードを取り、ブラウザーと互換性のあるすべての必要なモジュールをコンパイルし、心配することなくブラウザーで使用できる Javascript ファイル (またはいくつか) を吐き出すことができるようなものはありますか?欠落しているrequireメソッドについて? バックボーン アプリケーションに合わせて調整されたソリューションは、さらに優れています。

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

javascript - CommonJSモジュールを定義するときのfn.call(this)とfn()

CommonJSモジュールは、次のイディオムを使用して定義されているのが一般的です。

たとえば、Underscore.jsはこれを行います。

私はちょうど30分を同僚と話し合って、なぜ彼らがでクロージャーを呼び出すのかを話し合っていcall(this)ます。これによりthis、クロージャ内の値は、グローバルオブジェクトに設定されるのではなく、呼び出し元から継承されます。ただし、これをNode.jsでテストした場合this、モジュール内の値は、次のようにロードして実行した場合でも、常にグローバルオブジェクトでした。

コンソールにオブジェクトが表示されることを本当に期待していましたbarが、実際にはグローバルオブジェクトが表示されます。その後、Underscore.jsなどのモジュールがWebコンテキストでも使用されていることが原因である可能性があることに気付きました。ただし、その場合は<script>タグがロードされるためthis、とにかく常にグローバルオブジェクトと等しくなります。

何が得られますか?この構成を使用する理由は確かにありますが、モジュールがNode.jsで使用されているか、Webページで使用されているかにかかわらず、この特定のケースで実際的な違いはわかりません。

更新:明確にするために、これが違いを生む可能性のあるいくつかのケースを考えることができます。たとえば、私が言う場合:

(元の例を修正してくれた@Pointyに感謝します。)

モジュール内のクロージャは、が呼び出されたときに評価されることを期待します。つまり、モジュール内require()の値はグローバルオブジェクトにバインドされ、「バー」のメンバーとして呼び出されてthisもコンソールに書き込まれます。 foo()" 物体。ただし、この例でも、コンソールに「bar」オブジェクトが表示されています。私はそれthisが私が期待したように閉鎖に縛られていないと思いますか?

一言で言えば、Underscore.jsのようなモジュールが、Node.jsまたはWebページのいずれかで、fn.call(this)だけでなくで呼び出されたクロージャーにラップされているために、異なる動作をする1つの例を探しています。fn()