3

Rails とクライアント側の Backbone.js に基づいて Web アプリケーションを構築しています。Coffeescript-Code を構成するために、RequireJS とrequirejs-railsを使用しました。私の Backbone クラスはそれぞれ、独自の RequireJS モジュールに存在します。

私は最近、多くのコードをいくつかの基本クラスにリファクタリングし、それらを何らかの方法でパッケージ化して、他のプロジェクト (Rails および/または Javascript/Coffeescript、RequireJS がなくても可能) で簡単に再利用できるようにし、別のプロジェクトとして GitHub で共有したいと考えています。私のRailsアプリケーションから。パッケージに関する RequireJS のドキュメントを読みましたが、詳細にはあまり触れていません。だから、これは私がやりたいことです:

  • 共有コードを独自のパッケージに移動すると、次のようにviews/base_collection_viewなります。commons/views/base_collection_views
  • Railsアプリケーションのrequirejs-railsセットアップにパッケージを含め、my-commons.js非requirejsセットアップ内で使用するコンパイル済みファイルを提供します(後者は、パッケージのレイアウト方法を理解したら、アーモンドを使用してかなり簡単に実行できると思います)

この時点で、再利用可能な RequireJS パッケージの完全な例と、これを requirejs-rails に転送する方法のいくつかのアイデアが非常に役立ちます。

4

1 に答える 1

0

requirejs-rails についてはよくわかりませんが、RequireJS を使えばかなり簡単です。

define(['dep1', 'dep2'] , function ($, otherLibrary) {
    return function () {
        // your module code
    };
});

「dep1」と「dep2」は、モジュールが依存する他の RequireJS モジュールです。必要な数だけ依存することができます。実際の関数に渡す var 名 (この例では $ と otherLibrary) は、モジュール内でこれらのライブラリが割り当てられる名前です。

RequireJS を使用している人は誰でも、ファイルの名前とそのフォルダーに基づいて、この方法でモジュールを要求できます。

たとえば、このファイルがlibsディレクトリ内で「my-super-lib.js」と呼ばれていた場合、別のモジュールがlibs/my-super-libその依存配列に渡されるだけで、すべてがセットアップされます。

更新:コーヒースクリプトについて言及したことを思い出しました。同じ考えですが、明確にするために:

define ['dep1', 'dep2'], ($, otherLibrary) ->
    () ->
        // your module code

あなたがそれに興味があるなら。;)

于 2013-03-17T22:52:19.543 に答える