使编译的打字稿代码可全局访问

时间:2016-05-09 11:46:18

标签: javascript typescript window

我最近一直在做一个小项目,并遇到了这个问题,实际上我可以在页面的其余部分访问我的项目。

这是交易:

这是一个javascript路由器。这样做只是为了感兴趣。我已经通过grunt设置了我的打字稿编译器,并通过grunt-requirejs加载和连接模块。

这是grunt文件:https://github.com/Forestdev/jsRoute/blob/master/gruntfile.js

但是,输出似乎不会生成任何导出到窗口。我一直在谷歌上搜索如何将我的代码导出到窗口或任何地方,以便其他javascript文件可以访问它。

这可能是包装器的问题吗?我是否需要为所有这些插入自定义包装器?使打字稿项目全局化的一般经验法则是什么?

编辑:

忘记列出索引文件:https://github.com/Forestdev/jsRoute/blob/master/src/index.ts

使用新对象实例忽略该行。我想导出这个对象,以便其他人可以自己创建一个新的实例。

1 个答案:

答案 0 :(得分:0)

找到一种处理暴露于全球范围的方法。

在grunt build requirejs脚本中,我添加了一个自定义包装器,它是:

wrap: {
  start: '(function(global) {',
  end: 'global.JSRoute = global.JSRoute || require("index").Router; }(window));'
}

这似乎解决了我将脚本导出到全局范围的问题。这也正确地在窗口加载时加载脚本,因此其他脚本可以立即访问它。

希望这是有道理的。希望这也是正确的做法。