如何在不调用app.js的情况下启动模块

时间:2019-02-19 13:52:27

标签: apostrophe-cms

我创建了一个npm包,该模块在app.js中声明。在这个模块中,我用moogBundle声明了一些捆绑包

moogBundle = {
  modules: ['add-car-widgets','helpers'],
  directory: 'lib/modules'
}

我正在尝试在此包中而不是在app.js中对其进行初始化。我试图重新创建撇号模块(node_modules / apostrophe / index.js)的启动,如下所示

construct: function(self,options) {
  var defaults = require('./defaults.js');
  _.merge(self.apos.options.modules, defaults.modules);

  _.each(self.apos.options.modules, function(options, name) {
      self.apos.synth.define(name, options);

  });

文件默认为:

module.exports = {
  modules: {

   'add-car-widgets':{},
   'helpers':{},
 }
};

在self.apos.options属性的内容中,添加了我要声明的模块,但是,在视图中它们未初始化:

'add-car-widgets':
    { __meta:
        { dirname:
            '/mnt/c/Users/rafael.soria/Desktop/sandbox/lib/modules/add-car-widgets',
        filename:
            '/mnt/c/Users/rafael.soria/Desktop/sandbox/lib/modules/add-car-widgets/index.js' } },

helpers:
    { __meta:
        { dirname:
            '/mnt/c/Users/rafael.soria/Desktop/sandbox/lib/modules/helpers',
        filename:
            '/mnt/c/Users/rafael.soria/Desktop/sandbox/lib/modules/helpers/index.js' } } }

我想知道我是否处在正确的轨道上,或者是否有可能做我正在做的事情。

1 个答案:

答案 0 :(得分:1)

好吧,在尝试寻找解决方案几天后,我找到了。我仍然需要创建声明的对象。如果将来有人有同样的疑问,可以通过以下方式创建它:

self.apos.synth.create(name-module, { apos: self.apos })