admin管理员组文章数量:1350050
I am having issues with this game.js code that the game.ts file piles to:
var GameObjects = require("./GameObjects")
I have set up my page index.html js imports as so:
<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>
and this is the error in chrome:
Uncaught ReferenceError: exports is not defined GameObjects.js:82
Uncaught Error: Module name "GameObjects" has not been loaded yet for context: _. Use require([]) .html#notloaded
any ideas friends?
I am having issues with this game.js code that the game.ts file piles to:
var GameObjects = require("./GameObjects")
I have set up my page index.html js imports as so:
<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>
and this is the error in 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/docs/errors.html#notloaded
any ideas friends?
Share Improve this question edited Dec 14, 2012 at 16:19 Fenton 251k73 gold badges401 silver badges409 bronze badges asked Dec 13, 2012 at 22:18 NikosNikos 7,55110 gold badges57 silver badges96 bronze badges2 Answers
Reset to default 5I'm not sure where the idea of hand-editing the JavaScript files has e from. If you pile your TypeScript with the --module amd
flag, you shouldn't need to edit the JavaScript files as the import
statements will be converted into require
statements.
The only script tag you should need on your page is this:
<script src="javascripts/require.js" data-main="ts/game.js"></script>
Once require.js has loaded, it will then load game.js, and whenever it es across a require
statement (which is your import
statement in your TypeScript file) it will then load that script and then execute the code.
You can load in jQuery and GameObjects and any other modules just by adding import
statements in your TypeScript file.
You have no data-main
attribute in your require.js script
tag. Please read the RequireJS documentation carefully.
In a nuthshell: you should be loading ts/GameObjects.js
from a top-level require
call, which you put in the file specified in the data-main
attribute. e.g. (from the docs):
<!DOCTYPE html>
<html>
<head>
<title>My Sample Project</title>
<!-- data-main attribute tells require.js to load
javascripts/main.js after require.js loads. -->
<script data-main="javascripts/main" src="javascripts/require.js"></script>
</head>
<body>
<h1>My Sample Project</h1>
</body>
</html>
Then in javascripts/main.js
(you can actually call it whatever you want, as long as it matches what you put in data-main
), you call require
and load your modules and do whatever you want with them:
require(["ts/GameObjects.js", "ts/game.js"], function(GameObjects, Game) {
... use 'GameObjects' and 'Game' here ...
});
Remember that in ts/GameObjects.js
and ts/game.js
you need to wrap your code in define()
calls, so they are interpreted as modules.
Hope that helps.
本文标签: javascriptTypeScript requirejs issue with loading external modulesStack Overflow
版权声明:本文标题:javascript - TypeScript requirejs issue with loading external modules - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1743871996a2553640.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论