我最近一直在做一个小项目,并遇到了这个问题,实际上我可以在页面的其余部分访问我的项目。
这是交易:
这是一个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
使用新对象实例忽略该行。我想导出这个对象,以便其他人可以自己创建一个新的实例。
答案 0 :(得分:0)
找到一种处理暴露于全球范围的方法。
在grunt build requirejs脚本中,我添加了一个自定义包装器,它是:
wrap: {
start: '(function(global) {',
end: 'global.JSRoute = global.JSRoute || require("index").Router; }(window));'
}
这似乎解决了我将脚本导出到全局范围的问题。这也正确地在窗口加载时加载脚本,因此其他脚本可以立即访问它。
希望这是有道理的。希望这也是正确的做法。