【发布时间】:2013-04-30 08:00:40
【问题描述】:
我有以下使用 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:定义未定义 在对象。 (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,其中导入/命名空间要容易得多,如果这是一个业余问题,请见谅。
编辑: 根据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'”错误。
【问题讨论】:
-
这是否有帮助(您的编辑中描述的问题):stackoverflow.com/a/16214223/1014822?否则,为什么不拥有一个具有核心功能的基类,并将其扩展为 web 的 amd 模块和 node 的 commonjs?
标签: node.js typescript amd