在browserify,soma.js中传递依赖关系

时间:2016-04-05 14:46:45

标签: javascript node.js browserify browserify-shim

对于那些没有与soma.js合作的人来说,它是一个微框架,它带有2个核心文件 - soma.jssoma-template.js。他们都在npm,所以在我的项目中,我使用htmlvar soma = require('soma.js');

而不是在soma.template = require('soma-template');页面中对cdn网址进行硬编码

然而,这并没有奏效。所以我开始挖掘并发现soma-template npm module source code看起来像这样:

(function(soma){
   // code here
}(this['soma'] = this['soma'] || {})); 

如果我将this更改为window,那么一切正常。但是,在理想的世界中,我不想在npm模块源代码中查找,我宁愿在app.js主入口点以某种方式配置它。

我觉得我需要将soma变量的当前范围传递给它,但我不知道该怎么做..

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

所以我浏览了所有的源代码,最终设法解决了这个问题。如果有人有同样的问题,我通过执行以下操作来修复它:

var soma     = require('soma.js'),
    template = require('soma-template');

soma.plugins.add(template.Plugin);