TypeScript requirejs加载外部模块的问题

Nik*_*kos 3 javascript requirejs typescript

我遇到game.ts文件编译的game.js代码问题:

var GameObjects = require("./GameObjects")
Run Code Online (Sandbox Code Playgroud)

我已经设置了我的页面index.html js imports,如下所示:

<script language="javascript" src="javascripts/require.js" type="text/javascript"> </script>
<script language="javascript" src="javascripts/jquery-1.8.2.min.js" type="text/javascript"> </script>
<script language="javascript" src="ts/GameObjects.js" type="text/javascript"> </script>
<script language="javascript" src="ts/game.js" type="text/javascript"> </script>
Run Code Online (Sandbox Code Playgroud)

这是chrome中的错误:

Uncaught ReferenceError: exports is not defined GameObjects.js:82
Uncaught Error: Module name "GameObjects" has not been loaded yet for context: _. Use require([]) http://requirejs.org/docs/errors.html#notloaded
Run Code Online (Sandbox Code Playgroud)

任何想法的朋友?

Fen*_*ton 5

我不确定手动编辑JavaScript文件的想法来自哪里.如果使用--module amd标志编译TypeScript,则不需要编辑JavaScript文件,因为import语句将转换为require语句.

您页面上唯一需要的脚本标记是:

<script src="javascripts/require.js" data-main="ts/game.js"></script>
Run Code Online (Sandbox Code Playgroud)

一旦require.js加载,它就会加载game.js,每当遇到一个require语句(这是你import在TypeScript文件中的语句)时,它就会加载该脚本然后执行代码.

只需import在TypeScript文件中添加语句,即可加载jQuery和GameObjects以及任何其他模块.