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 から来たので、これがアマチュアの質問である場合は申し訳ありません。
編集: 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 () { };
});
しかし、これは typescript による define 呼び出し内に配置されるため、役に立たなくなります。次に、定義呼び出しの外に手動で配置しましたが、「モジュール 'amdefine' が見つかりません」というエラーが発生しました。