2013-12-15 54 views
0

我找不到使用dart2js編譯爲JavaScript時我的應用程序無法工作的原因。我嘗試過使用Google DevTools調試編譯好的JavaScript應用程序,但發現很難理解調試器和JavaScript代碼。您可以在GitHub上找到我的網絡應用程序。我懷疑編譯的JavaScript代碼和導入的第三方JS庫(如jquery)之間存在衝突,但不確定。我非常感謝你的幫助。「以JavaScript運行」不適用於我的dart web應用程序?

+0

github項目似乎缺少一些文件(如pubspec.yaml)。我無法運行它。 –

+0

感謝您花時間看我的問題。我剛把pubspec.yaml推到我的github回購站。請讓我知道,如果你現在可以運行它或其他東西需要推動。謝謝。 –

+0

你嘗試過'pub build --mode debug'來防止縮小嗎? –

回答

1

最簡單的可能是在您的代碼中添加幾條print語句。使用二分搜索時,應該比較容易找出VM和dart2js何時發生分歧。

如果您認爲dart2js做錯了,請回報,原因是什麼和/或提交了一個缺陷http://dartbug.com/

解決方案(由OP報告):「dart.js應該在[應用程序腳本行後面]」。

+0

我在main()後添加了一個print語句。它可以在Dart VM上打印,但dart2js不會將該語句打印到FireFox控制檯。似乎編譯的JS代碼對我的瀏覽器不可見。除了外部導入的JS庫之外,沒有任何工作在應用中。即使按鈕和輸入框不起作用。 –

+0

儘量讓最簡單的頁面工作。刪除除了main中的打印以外的所有Dart代碼。在服務器(或使用Chrome開發工具)中查看加載了哪些文件。如果沒有執行打印,我會猜測dart.js不會用js腳本標記替換dart腳本標記。我還沒有測試過它,但可能是因爲腳本標記位於標題中,而不在主體中。這就是我接下來要看的。 –

+1

謝謝Florian。我發現了這個問題。 dart.js應該在我的應用程序腳本行之後。我認爲如果dart.js行的位置非常重要,DartEditor應該發出警告。在我做了這個改變之後,VM開始顯示所有動態生成的按鈕兩次。而JS版本的應用程序沒有按預期運行。虛擬機沒有時拋出空指針異常。我將在另一個stackoverflow問題上發佈這些問題。對於這個問題,改變dart.js的位置是有用的。再次感謝你的時間和幫助。請添加這個解決方案2你的答案。 –

相關問題