Almond.js と Require.js オプティマイザーを使用して、Require.js なしで使用できるスタンドアロン ファイルを作成しようとしています。ファイルを正常にコンパイルでき、すべてのコードが実行されましたが、コードが間違った順序で実行されるという問題が 1 つあります。
私のメインファイル(include=
オプティマイザに渡されたオプションにあるファイル)に次のものがあるとしましょう:
console.log('outside');
require(['someFile'], function(someModule) {
console.log('inside');
window.foo = someModule.rightValue;
});
そして、私が持っているHTMLに出ます:
<script src="myCompiledFile.js"></script>
<script>
console.log('out in the HTML');
</script>
私は almond.js とコンパイルされたファイルを使用しているため (したがって、ファイルの読み込みは行われていません)、出力が得られると予想されます。
outside
inside
out in the HTML
ただし、実際に見ているのは次のとおりであるため、まだ非同期性が発生していることがわかりました。
outside
out in the HTML
inside
window.foo
HTMLからチェックしようとすると、そこにはありません。
script
それで、私の質問は、次のブロックに物事を渡す前にすべてのコードを最初に実行する、通常の/同期JSファイルのようにコードを取得するにはどうすればよいですか? ユーザーに「すべてのコードをwindow.setTimeoutにラップする」と正確に伝えることはできません。