2012-10-18 52 views
10

是否有辦法在Typescript中創建非匿名AMD模塊?當我定義了一個模塊,這樣的:在TypeScript中創建非匿名AMD模塊

export module Bootstrapper { 
    export function run() { 
    var i = 0; 
    } 
} 

生成代碼爲:

define(["require", "exports"], function(require, exports) { 
    (function (Bootstrapper) { 
    function run() { 
     var i = 0; 
    } 
    Bootstrapper.run = run; 
    })(exports.Bootstrapper || (exports.Bootstrapper = {})); 
}) 

我如何定義非anomymous模塊是這樣的:

define('bootstrapper', ["require", "exports"], function(require, exports) { 
    (function (Bootstrapper) { 
    function run() { 
     var i = 0; 
    } 
    Bootstrapper.run = run; 
    })(exports.Bootstrapper || (exports.Bootstrapper = {})); 
}) 
+1

你總是可以手工編寫的代碼requirejs –

回答

2

正如你所看到的在文件emitter.ts在行1202(搜索" var dependencyList = ")沒有實現它。

您可以在codeplex上打開關於它的問題。

1

從TS 0.9.x起,無法命名AMD模塊。該TS編譯器將只產生一個格式的TS論壇定義聲明

define(['dep1', 'dep2', ..., 'depN'], function(__dep1__, __dep2__, ..., __depN__) {... }); 

討論:https://typescript.codeplex.com/discussions/451454

6

此功能通過this pull request最近加入打字稿主分支。聲明AMD的模塊名稱與以下參考意見:

/// <amd-module name='MyModuleName'/>

會產生以下JavaScript:

define("MyModuleName", ["require", "exports"], function (require, exports) { ... }