これがクライアント側コードかサーバー側コードかによって、わずかに異なる2つのアプローチがあります。
クライアント側:別のファイルの両方ChatService
とwindow.ChatService
はクラスへのアクセスを許可します、そして、
class window.ChatService
constructor: (@io) ->
:ここでは、次のようにグローバル名前空間(window
)へのファイル間利用可能であるべきものを添付。
サーバー側:ここでは、exports
とrequire
を使用する必要があります。あなたが使用することができ、別のファイルからそれを得るために、そして、
class exports.ChatService
constructor: (@io) ->
:ChatService.coffee
ファイルでは、次のを持っているでしょう
ChatService = require('ChatService.coffee').ChatService
注:あなたから取得している複数のクラスがある場合
{ChatService, OtherService} = require('ChatService.coffee')
:ChatService.coffeeが、これは本当に開梱のCoffeeScriptの辞書のような、輝く一つの場所であります
両方:基本的には、現在の環境に基づいてサーバー側コードまたはクライアント側コードを実行するかどうかを選択します。
class ChatService
constructor: (@io) ->
if typeof module != "undefined" && module.exports
#On a server
exports.ChatService = ChatService
else
#On a client
window.ChatService = ChatService
それを取得するには:それを行うための一般的な方法ChatService
が既にwindow
に添付参照を参照しているので
if typeof module != "undefined" && module.exports
#On a server
ChatService = require("ChatService.coffee").ChatService
else
#On a client
ChatService = window.ChatService
第2ブロックのelse節は、スキップすることができます。 (
self = {}
class self.ChatService
そして、クライアントにサーバー上のmodule.exports = self
と_.extend(window, self)
ようにそれらを添付:このファイル内のクラスの多くを定義するつもりなら
、次のように定義する方が簡単かもしれ_.extend
を別のextend
機能に置き換えてください)。
Railsを使用している場合は、依存するcoffeescriptファイルを*試して参照しようとしていることを確認する必要があります。実際に他のものが必要なファイルに "require"ディレクティブを設定すると、変数などにアクセスできるようになります。 –