2014-03-26 91 views
0

我剛剛開始打字稿,我試圖設置一個多頁的amd應用程序。Typescript - 加載不導出的模塊

由requirejs隊我有了我的所有requirejs CONFIGS,前一個common.ts文件中提供的setup直列保持:

// common.ts 
require.config({ 
    paths: { 
     'backbone': 'lib/backbone' 
     , 'jquery': 'lib/jquery' 
     , 'underscore': 'lib/underscore' 
    } 
}); 

然後我加載requirejs使用以下腳本標籤:

<script data-main="http://blah/page1.js" src="http://blah/require.js"></script> 

按照requirejs針對多頁面應用程序的建議中的指示,然後從blah/page1.js中加載common.ts,這就是我開始遇到麻煩的地方。

什麼是導入commont.ts文件的正確方法?

我還沒有運氣import requireConfig = require('common');,因爲我沒有從common.ts導出任何東西。但是,當我嘗試導出任何東西時,即使是來自common.ts的虛擬值,它最終也會將require.config()調用包裝在模塊定義函數中,該模塊定義函數會使用requirejs來破解東西。

我參加了一個遠射試圖使用它,但/// <reference path="common.ts"/>加載過程失敗

我也試圖消除import聲明,只是調用require('common')但失敗Could not find symbol 'require'

是編譯的有一些方法可以加載common.ts,即使它不導出任何東西?

回答

-1

你不應該加載需要配置文件作爲外部模塊。您應該使用data-main並將其指向該文件。舉一個例子看http://youtube.com/watch?v=KDrWLMUY0R0

這個文件應該是你的應用程序主入口點

+0

對不起,我遺漏了詳細信息並將更新,但是,我正在使用數據主屬性。只有,根據requirejs multipage建議(鏈接到我的問題),我的數據主文件是加載配置的文件。 – uglymunky

1

你不能import一個文件,除非你從一個文件export東西,不能export你從一個文件,而不是把它包起來的當您爲amd進行編譯時,可以使用define

+0

我很害怕,感謝@basarat – uglymunky

0

對於任何人想出現這個問題,跟進@basarat's answer(基本上,我試圖做的是不可能的)我已經能夠通過添加我的requirejs配置設置來解決我的問題(例如,將會有共同之處.ts)根據requirejs docs中提供的說明內嵌在我的html模板文件中。

所以,我的HTML看起來像:

<script> 
    var require = { 
      paths: {...} 
      , shims: {...} 
    }; 
</script> 

<script src="scripts/require.js"></script> 

不理想,但它似乎越來越現在所做的工作。