2013-02-11 48 views
0

我正在構建一個原型Web應用程序,我想將它集成到Chrome網頁中(不需要用於生產)。 因此,我建立了一個後端解決方案,將我的所有js文件發送到一個請求中,並將結果發送到Chrome擴展客戶端,以實現組織和簡化目的。在Chrome擴展中調試匿名函數

myBackend.coffee(我自己的服務器的NodeJS)

getScript = (name) -> 
    filename = "#{__dirname}/../public/js/#{name}.js" 
    fs.readFileSync(filename, 'utf-8') 

get '/chrome/includes', (req, res) -> 
    scripts = [ 
    getScript 'vendor/jquery' 
    getScript 'vendor/jquery.ui' 
    getScript 'vendor/mousetrap' 
    getScript 'vendor/mustache' 
    getScript 'vendor/backbone' 
    #... 
    getScript 'main-chrome' 
    ] 

    res.send 
    scripts: scripts 
    css: [ 
     #... 
    ] 

backckground.coffee(Chrome用戶端)

$.ajax 
    url: "http://localhost:3001/chrome/includes" 

    success: (data) -> 
    compactedCode = '' 
    _.each data.scripts, (code) -> 
     compactedCode += code 

    chrome.tabs.executeScript tab.id, code: compactedCode 

好了,這是很好的,但問題出現時,我做錯了代碼「compatedCode」。

鉻告訴我:

Uncaught TypeError: undefined is not a function (anonymous function) But not telling me where is the error.

https://docs.google.com/file/d/0B6tc60GuFE4WSk4zTXhzV1luOE0/edit?usp=sharing

我有很多的代碼,所以這是不是真的寫「調試」無處不在的選項。

我該怎麼做才能以熟練的方式進行調試?

+0

你可以嘗試'嘗試{}趕上(E){}'塊? – 2013-02-11 10:35:39

+0

如果可以的話,註釋掉'getScript'這行代碼,以查看它在哪個文件中,作爲開始。 – Cerbrus 2013-02-11 10:36:48

+0

是的,已經評論了一些腳本,但是調試非常痛苦,因爲多個文件具有相同的「通用」錯誤。 所有的「compactedCode」在標準網頁中都能正常工作。 – Goaman 2013-02-11 10:42:37

回答