我目前正在構建一個需要某種腳本依賴加載器的海量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列表的構建過程,而是在主內核按照正確的順序進行優化後搜索文件夾。
感謝
我不確定你在問什麼。你的插件如何與你加載Backbone,Underscore等不同?你能給出一個解釋你爲什麼要Grunt搜索你的文件夾而不是JSON文件嗎?另外你打算如何知道插件應該連接的順序? – TYRONEMICHAEL
該項目需要能夠搜索插件文件夾,並通過這些需要優化器,因爲開發人員可以添加一個插件到文件夾 - 運行構建過程,並期望文件被添加到主JS文件。我們可以創建一個JSON文件,這將是很好的做法 - 但我希望有另一種方式來做到這一點?作爲一名開發人員,我們試圖儘可能簡單地添加插件而不編輯JSON文件。但也許這是我們需要做的事情? – darylhedley