這是相當通用的,但這裏是一個嘗試。
您首先需要的是一個「構建系統」(或「任務管理器」)。這肯定可能是「make」或「grunt」。然後,您將編寫一個gruntfile(或makefile)來描述生成軟件包所需的每個步驟,並且您將在該文件中創建特定的「目標」,這將描述特定選項/值,具體取決於您是否正在生成開發包或生產(「domain.net」與「domain.nl」)。
假設你的呼嚕聲會,你肯定能做到這一點的東西在的行:
grunt.initConfig({
myConfig: grunt.file.readJSON('configurationFile.json')
});
則:
grunt.config('mytask.dev': {
options: '<%= myConfig.dev %>'
});
grunt.config('mytask.prod': {
options: '<%= myConfig.prod %>'
});
和configurationFile.json可能看起來像:
{
'dev': {'domain': 'domain.net'},
'prod': {'domain': 'domain.com'}
}
通過這樣的設置,您可以:
grunt myTask:dev
或
grunt myTask:prod
以產生包特定的環境。 顯然,您需要使用各種grunt插件來做任何有用的事情,並使用您的選項值來替換源文件中的模板值。
至此,您至少可以通過運行一個生成命令來自動生成可靠的包。
你絕對需要閱讀雖然繁重的文檔:http://gruntjs.com/getting-started
第二部分,你將可能需要的是一個CI服務器。 周圍有很多 - 詹金斯(古老的),或更近的斯特拉德(http://stridercd.com/)。
安裝和配置其中一個將自動化您的構建操作。也就是說,每次提交一些代碼時,都會在CI服務器上觸發構建,並且新包(假設構建成功)可用。
在那裏,你肯定需要閱讀關於CI的一些背景文檔(如http://en.wikipedia.org/wiki/Continuous_integration),然後弄髒它們中的一個。
無論哪種方式,從咕嚕開始,看看去哪裏。
希望有所幫助。
好的,謝謝您的反饋。我正在閱讀Grunt入門,並從Twitter Bootstrap解析grunfile.js(這個很複雜)。 – myradon