2013-01-16 14 views
14

我剛剛開始使用RequireJS加載我的頁面的腳本,但在嘗試使用chrome調試問題時遇到了障礙。由RequireJS加載的調試/查找腳本

比方說,我有一個依賴於兩個依賴我的主要腳本:dep1dep2

require(["dep1", "dep2"], function(dep1, dep2) { 
    //do something 
}); 

雖然運行單元測試我注意到一些在dep1.js無法正常工作,所以我打開Chrome瀏覽器開發工具插入一個斷點,除了...

missing dependencies

... dep1.js不存在!

如何找到插入我的斷點的源文件?

我相信的文件是在腳本正常運行時被加載。我只是無法在源代碼列表中看到它們

+3

@downvoter - 任何評論/ downvoting的原因? –

+0

另一種驗證/訪問加載源的方法是通過Chrome開發人員工具中的網絡選項卡。您可以右鍵單擊源查看它。 – Fuhrmanator

回答

5

終於意識到問題是,我是用r.js代替require.js。只要我切換,我可以看到沒有問題的文件。

另外,臨時解決方法是在插入文件的末尾插入下面的行。這只是約得到鉻來拾取文件。

//@ sourceURL=GameWorldAction.js 
+1

非常有趣這是我的建議一個月之前,你發佈這個(見下文),但沒有一個upvote .. –

+0

@RobbertvandenBogerd除了jeremyawesome之外,我沒有看到任何答案。如果你的意思是你對這個答案的評論,那麼是的,那是真的 - 你應該把它作爲一個單獨的答案發布! –

+0

@RobbertvandenBogerd +1來自未來! – mix3d

1

在上例中,您從不關閉陣列。

require(["dep1", "dep2", function(dep1, dep2) { 
    //do something 
}); 

應該是:

require(["dep1", "dep2"], function(dep1, dep2) { 
    //do something 
}); 

編輯迴應更新到問題:

我假設r.js是RequireJs文件。它看起來像RequireJS沒有正確加載文件,如果它有文件將顯示在您的檢查器。

您是否正在使用script標記上的data-main屬性指定主JS文件?如果是這樣,那麼dep1dep2文件與主JS文件位於同一目錄中嗎?如果您嘗試從不同的路徑或域加載文件,則可能必須指定不同的baseUrl。您可以通過在require.config中設置baseUrl來更改它。

<script> 
    require.config({ 
    //path can also be a domain like "//image.mydomain.tld/jscript" 
    baseUrl: "/another/path" 
    }); 
</script> 
+0

該示例直接輸入到SO中 - 數組在實際代碼中關閉。我更新了問題 –

+0

是的,我正在使用'data-main'屬性,並且文件正確加載正確(我可以看到,因爲我的測試正在運行)。我實際上是指定一個單獨的'baseUrl'以及一些'路徑'映射,但我不認爲這是問題 –

+0

你檢查了:https://code.google。com/p/chromium/issues/detail?id = 146823 – jeremysawesome