1

我想创建一个包含多个类的单个节点库,每个类都使用不同文件中的咖啡脚本编写并相互扩展。例如,假设我在 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

有什么方法可以绑定这 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

1 回答 1

4

您可以使用main配置您的模块的入口点并在那里公开您的类。(我没有用咖啡脚本做到这一点)。

主要字段是模块 ID,它是程序的主要入口点。也就是说,如果您的包名为 foo,并且用户安装了它,然后执行了 require("foo"),那么您的主模块的导出对象将被返回。

这应该是相对于包文件夹根目录的模块 ID。

将您的 main 配置为指向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');
于 2013-09-23T23:20:01.910 回答