尝试创建一个 AMD Javascript 库以包含在非 AMD 项目中。这是我的设置:
应用程序.coffee
define ->
class App
constructor: -> console.log 'instantiating App'
init: -> console.log 'Init called'
索引.html
<body>
<script type="text/javascript" src="//code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="dev-latest.js"></script>
<script type="text/javascript">
$(document).ready(function(){
console.log('doc', window.app);
});
$(function(){
console.log('func', window.app);
});
window.onload = function()
{
console.log('onload', window.app);
}
</script></body>
main.js
require(['cs!app'], function(app){
return window.app = new app;
});
我正在使用 r.js 优化器构建这个项目,以获取 dev-latest.js 作为输出。这是我的构建文件(PS:构建成功):
({
baseUrl: './vendor',
paths: {
app: '../app',
'require-lib': 'require'
},
name: '../main',
out: 'dev-latest.js',
include: 'require-lib',
preserveLicenseComments: false
})
在浏览器中运行代码时,输出如下:
doc undefined
func undefined
onload undefined
instantiating App dev-latest.js:1
app.init(); // running this manually in the browser console
Init called
我应该如何解决这个问题并在使用之前加载应用程序?