创build单节点模块以访问在coffeescript中创build的单独文件中的多个扩展类

我想创build一个包含多个类的单个节点库,每个类都使用另一个文件中的coffee-script创build并相互扩展。 例如,说我在node_modules / mymodule / src中有以下文件:

文件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 

有没有办法以这种方式绑定这三个类,以便我可以在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中做什么来做到这一点,我无法在任何地方find文档。 这可能吗?

你可以使用main来configuration入口点你的模块,并在那里暴露你的类。 (我没有用咖啡脚本做这个)。

主要字段是模块ID,是您程序的主要入口点。 也就是说,如果你的包被命名为foo,并且用户安装它,然后做require(“foo”),那么你的主模块的exports对象将被返回。

这应该是一个相对于你的包文件夹的根的模块ID。

configuration你的主要指向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');