从duo构建的js脚本访问对象

时间:2015-02-04 09:00:59

标签: javascript duo.js

我正在使用duo.js但想要公开一个对象,以便可以在我的html文件的其他部分访问它。

在我的index.js文件中,我有;

var uuid = require('gjohnson/uuid');
var bind = require('ianstormtaylor/bind');
function User(options){
  this.protocol = window.location.protocol;
  this.options(options);
}
User.prototype.randomID = function(){
  return uuid();
};

module.exports = bind.all(new User());
var user = module.exports.User = User; 

我运行duo index.js来创建build/index.js文件。

然后我希望能够访问index.html脚本中的user对象:

<script type="text/javascript" src="build/index.js"></script>
<script>
(function() {
    console.log(user.randomID());
})();
</script>

但我得到`ReferenceError:用户未定义&#39;。我还在学习二人组,对结构并不熟悉。如何正确公开用户对象以便可以访问它?

1 个答案:

答案 0 :(得分:0)

Duo 将其构建的脚本公开给全局上下文。因此,您不能使用内联脚本,而是使用Duo构建脚本并在外部提供它。

您目前拥有index.js的脚本可能应该是lib/user.js。然后,真正的index.js应该是您放置页面逻辑的位置,例如user.randomID();

如果您想简化开发过程,请考虑使用duo-serve之类的工具,它可以在每次刷新时自动重建脚本。

要将构建的模块公开给window对象,请使用--global CLI标志。如果您需要以其他软件包管理器更易消耗的方式公开您的模块,请使用--standalone将您的脚本输出为UMD。