我正在開發一個Angular Demo應用程序,我想自動化很多事情。GruntJS可配置首次運行
這是一種樣板,儘管是一個更復雜的樣板,我想製作一個配置文件,在其中我們將API密鑰和其他東西,我希望該文件由Grunt與用戶交互當項目第一次啓動時。
喜歡的東西:
grunt build
- 它應該直接問用戶在控制檯中的API密鑰,會在我定義整個應用程序的一些全局常量配置文件插入。
Grunt有沒有這樣的功能的例子?
我正在開發一個Angular Demo應用程序,我想自動化很多事情。GruntJS可配置首次運行
這是一種樣板,儘管是一個更復雜的樣板,我想製作一個配置文件,在其中我們將API密鑰和其他東西,我希望該文件由Grunt與用戶交互當項目第一次啓動時。
喜歡的東西:
grunt build
- 它應該直接問用戶在控制檯中的API密鑰,會在我定義整個應用程序的一些全局常量配置文件插入。
Grunt有沒有這樣的功能的例子?
您可以通過使用處理追問:
https://github.com/dylang/grunt-prompt
這是一個不錯的小插件,做一個工作,並把它做好。它把任何價值,你在命令行已進入變量:(例子)
prompt: {
target: {
options: {
questions: [
{
config: 'key', // arbitrary name or config for any other grunt task
type: 'input', // list, checkbox, confirm, input, password
message: 'What is your API key?',
default: '', // default value if nothing is entered
when: function(answers) { return !grunt.file.exists('config.yml'); } // only ask this question when this function returns true
}
]
}
}
}
然後你可以使用Grunt.file
功能這些值寫入文件:
http://gruntjs.com/api/grunt.file#grunt.file.write
爲了管理它,你需要創建一個自定義任務:(例子)
grunt.registerTask("my_config_task", function (arg) {
var key = arg || grunt.config('key');
grunt.file.write("config.yml", key);
});
grunt.registerTask('build', ['prompt', 'my_config_task']);
寫作可能需要細化爲你W¯¯病了,我想,需要更換的價值觀和組織作爲yml
文件或json
對象,等...
找到可能的解決方案之一,而看的grunt-bump
來源。他們在做什麼是解析配置文件作爲一個JSON對象:
https://github.com/darsain/grunt-bumpup/blob/master/tasks/bumpup.js#L128
更換他們需要的任何值(如JSON)並覆蓋目標文件字符串化:
https://github.com/darsain/grunt-bumpup/blob/master/tasks/bumpup.js#153
似乎運作良好。
真棒!你先生是救生員......謝謝! –
唯一的這是我需要它只發生一次,我需要看看保存變量的位置,並且不要求用戶添加一次。 –
這就是「when」屬性的用途:when:function(answers){return!grunt.file.exists('config.yml'); } –