2013-07-22 139 views
2

是否可以使用Dojo構建而無需修改JavaScript文件?是否可以在不修改JS文件的情況下使用Dojo構建?

文章dgrid and Dojo Nano Build提供了指令創建構建,但它需要添加以下行JavaScript文件,初始化程序:

require(['dgrid/dgrid'], function() { 

(替換「dgrid/dgrid」與您的構建模塊名)。

但是,使用建立自己的模塊時,它是非常有問題的,因爲,當然,在開發模式有自己的層需要不能列入,否則做出自己的模塊修改將不可見。但在生產模式下,必須添加此行。

所以,要麼你必須手動修改文件之前生產版本,或者寫一個腳本,將在生成過程中修改文件。兩者都非常容易出錯。

有沒有更好的辦法來達到這種效果? Dojo是否有可能認識到構建是提供並應該使用的,而不是分別加載每個模塊?

回答

2

以下代碼行可以包含在開發和生產模式中。

require(['dgrid/dgrid'], function() { 

我描述了爲什麼在我的回答here

你需要做的是配置不同的道場基於什麼樣的環境。

blog post是我寫的,我描述這個更詳細。下面總結的帖子:

創建三種模式:生產,無壓縮和發展。

發展

在開發代碼,我會鏈接到Web服務器和開發模式將指向的dojo.js文件和原始的css文件(S)的JS源。瀏覽器將加載我需要使用xhr的模塊。我指向導入其他css文件的頂級css文件。其結果是,很多請求將被髮送到服務器,並且頁面的加載速度將明顯變慢。好處是你可以看到發展變化,而不必做一個完整的構建。

生產

生產模式指着正在使用的構建工具構建的dojo.js主要道場文件。我還爲頁面中所需的其他圖層創建<script>元素。我將CSS指向構建工具已內嵌導入的CSS的內置css文件。快速的頁面加載,但很難調試

未壓縮

類似產品,但我指向.uncompressed.js文件。 Production和Uncompressed可以在我們軟件的發佈版中找到。在嘗試解決生產環境中的問題時使用未壓縮。這種模式的價值越來越少的開發工具更好地支持JavaScript的壓縮(即源地圖等)

服務器端

默認模式爲生產,但我使用的查詢參數切換模式。我還將當前模式存儲在會話中,這樣我只需設置一次模式即可更改模式。後續頁面將以改變後的模式運行,直到我將其更改回來。

Here是此代碼的java實現。

+0

它工作得很好。我不必更改任何JS甚至HTML文件。如果構建不可用,則在控制檯中只有404可見,並且所有內容都以開發模式加載。 –

+0

但是,當從WebSphere加載應用程序時,它不適用於IE9。在構建文件的某處出錯:屬性'dir'未定義。無論如何,我必須要求它。 –

+0

不得不把需要?如果構建爲一個瀏覽器而不是另一個瀏覽器工作,而不是構建的問題以及構建的代碼的問題,但沒有任何細節,這很難說。 –

相關問題