我有以下使用 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 中加载它时,出现以下错误:
(function (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._compile (module.js:456:26) 在 Object.Module._extensions..js (module.js:474:10) 在 Module.load (module.js:356:32) 在 Function.Module。 _load (module.js:312:12) 在 Function.Module.runMain (module.js:497:10) 在启动时 (node.js:119:16) 在 node.js:901:3
如何进行这项工作并定义“定义”?我需要 AMD 模块,因为我会在浏览器中加载一些代码。
我来自 C# 和 AS3,其中 Imports/Namespaces 要容易得多,如果这是一个业余问题,请见谅。
编辑:按照http://requirejs.org/docs/node.html#nodeModules的建议,我添加到文件顶部:
if (typeof define !== 'function')
{
var define = require('amdefine')(module );
}
define(function (require)
{
var dep = require('dependency');
return function () { };
});
但这被打字稿放置在定义调用中,这使得它毫无用处。然后我手动将它放在定义调用之外,这只是导致“找不到模块'amdefine'”错误。