创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');