2015-11-09 111 views
0

之間的鍍鉻我一直在四處試圖找到這個問題的答案:打字稿調試在CommonJS的和AMD

How can I debug modular TypeScript with source maps?

TypeScript generating wrong JS in Release Mode

Typescript AMD Modules in Visual Studio

但至今沒有運氣。我有一個使用TypeScript的Visual Studio 2015 Angular項目。我正在嘗試調試工作。我的TypeScript文件使用CommonJS編碼。當我運行該應用程序並嘗試調試錯誤時顯示「導出未定義」。當我更改應用程序使用AMD在IE中運行,但無法在Chrome中的JS被創建這樣的:

define(["require", "exports"], function (require, exports) { 
function sayHello() { 
    alert("I am here"); 
} 
exports.sayHello = sayHello; 
function yo() { 
    alert("yo"); 
} 
exports.yo = yo; 
}); 
//# sourceMappingURL=TestMessage.js.map 

和Chrome現在說「定義」沒有定義。如果我離開模式CommonJS Chrome和IE錯誤,說「出口沒有定義。」好像我在這裏錯過了一些東西。任何想法是什麼?這是TS文件的原因:

export function sayHello() { 
alert("I am here"); 
} 

export function yo() { 
alert("yo"); 
} 

回答

2

Commonjs是主要由nodejs使用的模塊系統。 AMD是專爲瀏覽器而設計的。

你可以使用任何你喜歡的東西,但每個東西都需要一個庫來使它在瀏覽器中工作。

對於常見問題,您可以使用webpackbrowserifysystemjs

對於AMD,您可以使用requirejssystemjs

+0

因此,我們正在使用webpack,但這是我想要過來的問題。 Webpack將我所有的TS都放入一個文件中。爲了便於開發人員調試,我試圖將它們全部保存在不同的文件中。但是,我似乎無法獲得webpack(awesome-typescript-loader)來保持所有文件分開。這可能是在webpack的面前。 – ToddB

+0

我們實際上使用[webpack-stream](https://www.npmjs.com/package/webpack-stream)。在我找到[vinyl-named](https://github.com/shama/vinyl-named)後,我就可以完成所有單個文件的流式處理。所以我想我現在有這個。 – ToddB