我正在使用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;。我还在学习二人组,对结构并不熟悉。如何正确公开用户对象以便可以访问它?
答案 0 :(得分:0)
Duo 不将其构建的脚本公开给全局上下文。因此,您不能使用内联脚本,而是使用Duo构建脚本并在外部提供它。
您目前拥有index.js
的脚本可能应该是lib/user.js
。然后,真正的index.js
应该是您放置页面逻辑的位置,例如user.randomID();
。
如果您想简化开发过程,请考虑使用duo-serve之类的工具,它可以在每次刷新时自动重建脚本。
要将构建的模块公开给window
对象,请使用--global
CLI标志。如果您需要以其他软件包管理器更易消耗的方式公开您的模块,请使用--standalone
将您的脚本输出为UMD。