2013-09-23 37 views
1

我想創建一個包含多個類的單個節點庫,每個類都使用另一個文件中的coffee-script創作並相互擴展。例如,假設我有node_modules/mymodule中/ src目錄下的文件:創建單節點模塊訪問在coffeescript中創作的單獨文件中的多個擴展類

文件1:

class Base 
    constructor: (@foo) -> 

    module.exports = Base 

文件2:

Base = require './Base.coffee' 

    class Derived extends Base 
    constructor: (@bar) -> 
     super 

    module.exports = Derived 

文件3:

Base = require './Base.coffee' 

    class Derived2 extends Base 
    constructor: (@baz) -> 
     super 

    module.exports = Derived2 

有沒有辦法以這種方式綁定這3個類,以便我可以在package.json文件中定義「mymodule」,然後像這樣訪問模塊及其類?

文件使用MyModule的:

my module = require 'mymodule' 

    Base = new mymodule.Base 
    Derived = new my module.Derived 
    Derived2 = new my module.Derived2 
    #Do stuff 

我不知道在做的package.json要做到這一點,我不能在這個地方找到的文檔。這可能嗎?

回答

4

您可以使用main來配置您的模塊的入口點並在其中公開您的類。 (我沒有用咖啡腳本來做這個)。

主要字段是模塊ID,它是程序的主要入口點。也就是說,如果你的軟件包被命名爲foo,並且用戶安裝它,然後做require(「foo」),那麼你的主模塊的exports對象將被返回。

這應該是一個模塊ID相對於您的包文件夾的根目錄。

配置您的主要指向index.js或類似的。您的index.js會看起來像這樣:

module.exports.Base  = require('./pathtobase/Base.coffee'); 
module.exports.Derived = require('./pathtobase/Derived.coffee'); 
module.exports.Derived2 = require('./pathtobase/Derived2.coffee'); 
+0

謝謝!使用index.js正是我所期待的。 – Clandestine

相關問題