1

我目前正在構建一個需要某種腳本依賴加載器的海量Web應用程序。我開始使用RequireJS,並發現它非常適合將代碼優化成一個加載正確依賴順序的大JS文件。使用RequireJS加載其他不需要的文件

但是我有插件 - 這些插件並不是必需的,因爲我的網絡應用程序不知道它在文件夾中具有哪些插件。我想要的是grunt-contrib-requirejs過程是:

1 - 將所有核心文件並根據其依賴性加載到一個文件中。

2 - 然後我想讓它運行我的兩套插件文件夾,並根據它們的依賴性加載它們。

3 - 然後把這些連接的文件放入第一個文件,所以我有一個JS文件。

我有一個Less和Handlebars過程來搜索每個Less/CSS/Handlebars文件並對它們進行排序,我想知道是否有像RequireJS這樣的東西?

下面是我對RequireJS咕嚕過程:

requirejs: { 
    compile: { 
    options: { 
     name: "core/js/app", 
     baseUrl: "src", 
     mainConfigFile: "./config.js", 
     out: "./build/adapt/js/adapt.min.js" 
    } 
    } 
} 

,這裏是我的config.js文件:

'use strict'; 

require.config({ 
deps: ['core/js/app'], 
paths: { 
    jquery: 'core/js/libraries/jquery.v2', 
    underscore: 'core/js/libraries/underscore', 
    backbone: 'core/js/libraries/backbone', 
    modernizr: 'core/js/libraries/modernizr', 
    handlebars: 'core/js/libraries/handlebars', 
    imageReady: 'core/js/libraries/imageReady', 
    inview: 'core/js/libraries/inview', 
    scrollTo: 'core/js/libraries/scrollTo', 
    coreJS: 'core/js', 
    components: 'components' 
}, 
shim: { 
    jquery: [], 
    backbone: { 
     deps: ['core/js/libraries/underscore', 'core/js/libraries/jquery.v2'], 
     exports: 'Backbone' 
    }, 
    underscore: { 
     exports: '_' 
    }, 
    handlebars: { 
     exports: 'Handlebars' 
    } 
} 
}); 

我承認是很新的RequireJS那麼將是很好的獲得對解決方案的一些建議。但正如我上面所說 - 我需要一個不通過JSON列表的構建過程,而是在主內核按照正確的順序進行優化後搜索文件夾。

感謝

+0

我不確定你在問什麼。你的插件如何與你加載Backbone,Underscore等不同?你能給出一個解釋你爲什麼要Grunt搜索你的文件夾而不是JSON文件嗎?另外你打算如何知道插件應該連接的順序? – TYRONEMICHAEL

+0

該項目需要能夠搜索插件文件夾,並通過這些需要優化器,因爲開發人員可以添加一個插件到文件夾 - 運行構建過程,並期望文件被添加到主JS文件。我們可以創建一個JSON文件,這將是很好的做法 - 但我希望有另一種方式來做到這一點?作爲一名開發人員,我們試圖儘可能簡單地添加插件而不編輯JSON文件。但也許這是我們需要做的事情? – darylhedley

回答

0

當我們試圖使它儘可能簡單添加 插件,而不是編輯JSON文件中的開發商。

這是文檔解決的問題,而不是自動化。將一行添加到require配置比編寫一個Grunt任務自動執行然後保留該文件容易。即使它會自動完成,您將如何處理用戶定義的配置?是否會設置一些樣板文件,然後連接到某個目錄中自動生成的.js文件列表?你會仍然必須記錄這與run grunt generaterequireconf或沿着這些線。

只需記錄添加jQuery插件的過程:下載,安裝到指定的目錄,然後將路徑添加到主要JS文件的require配置中,這裏是路徑。

我也想說的是看看Bower,看看是否可以讓人們使用它來管理由第三方製作的插件。

相關問題