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

Access object in script from duo built js

本文关键字:脚本 对象 访问 js duo 构建      更新时间:2023-09-26

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

在我的索引中.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文件。

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

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

但是我得到"引用错误:未定义用户"。我还在学习二重奏,对结构不熟悉。如何正确公开用户对象以便可以访问它?

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

您当前作为index.js的脚本可能应该是类似 lib/user.js .然后,真正的index.js应该是您放置页面逻辑的位置,例如 user.randomID(); .

如果要简化开发过程,请考虑使用像 duo-serve 这样的工具,该工具会在每次刷新时自动重建脚本。

若要向window对象公开生成的模块,请使用 --global CLI 标志。如果需要以其他包管理器更易于使用的方式公开模块,请使用 --standalone 输出带有 UMD 的脚本。