AMD 以外のプロジェクトに含まれる AMD Javascript ライブラリを作成しようとしています。これが私のセットアップです:
app.coffee
define ->
class App
constructor: -> console.log 'instantiating App'
init: -> console.log 'Init called'
index.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;
});
出力として dev-latest.js を取得するために、r.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
これについてどうすれば、使用する前にアプリをロードできますか?