用于Node.js的Typescript AMD模块

我有我用AMD模块编译的以下Typescript文件:

import tsmx = module("../TSMX/tsmx"); tsmx.createServer(1337); 

产生以下js:

 define(["require", "exports", "../TSMX/tsmx"], function(require, exports, __tsmx__) { var tsmx = __tsmx__; tsmx.createServer(1337); }) 

当我尝试加载它在Node.js我得到以下错误:

(函数(exports,require,module,__filename,__dirname){define([“require ^ ReferenceError:define is not defined at Object。(C:\ DB \ Repo \ TSMX \ TSMX \ TSMXTest \ app.js:1:63 )在Module.load(module.js:356:32)上的Module._compile(module.js:456:26)位于Function.Module的Object.Module._extensions..js(module.js:474:10)在node.js:901:3启动时(node.js:119:16)的Function.Module.runMain(module.js:497:10)处的_load(module.js:312:12)

如何使这个工作,并得到“定义”定义? 我需要AMD模块,因为我会在浏览器中加载一些代码。

我来自C#和AS3其中import/命名空间是很容易很抱歉,如果这是一个业余爱好者的问题。

编辑:按照http://requirejs.org/docs/node.html#nodeModules的build议,我添加到文件的顶部:

 if (typeof define !== 'function') { var define = require('amdefine')(module ); } define(function (require) { var dep = require('dependency'); return function () { }; }); 

但是这被放置在定义的调用中,使其无效。 然后我手动将它放在定义调用之外,只是导致“无法find模块”amdefine'“错误。

只是一个select:你不需要在节点上使用AMD。 将您的节点文件与您的浏览器文件分开编译。 使用AMD浏览器。

如果你仍然想在节点代码上使用AMD,这可能会有所帮助: http : //nodejs.org/docs/v0.5.0/api/modules.html

我还没有使用节点,但在浏览器中定义/要求定义在第三方库,例如requirejs: http ://requirejs.org/演示: http : //www.youtube.com/watch?v = 4AGQpv0MKsA