我面临以下有趣的问题:
#develop
。基于以上所述,我需要找到一种方法来跟踪第一次调用中已更改的文件,因此我可以在第二步中恢复更改。我不能在第二步使用模式来避免误报。
示例:
bower.json
中 - 将其从#develop
更改为#1.2.3
#1.2.3
替换回#develop
最后一步很难,因为我不想更改我在上一步中没有更新的#1.2.3
出现的任何事件。为此,我需要将更改的文件列表存储在内存中,或者存储在项目根目录中的临时文件中,例如:像.grunt-replace
这样的东西。在最后一步读取文件后,插件可以删除它。
有人使用像这样的Grunt插件吗?你怎么解决这个问题? Grunt是否具有支持上述功能的功能,或者我应该只使用Node.js文件API吗?
我是否应该考虑其他模式来保持Grunt调用之间的某种状态?
答案 0 :(得分:1)
您可以使用文件观察程序使grunt进程保持活动状态,然后使用事件跟踪状态。
例如:
var files = [];
module.exports = function(grunt) {
grunt.initConfig({
watch: {
files: ['orig.js'],
tasks: ['my-task']
}
});
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('my-task', function(){
// Execute some task
});
grunt.event.on('watch', function(action, filepath, project) {
//add file
files.push(filepath);
});
grunt.registerTask('default', ['watch']);
};
然后,您可以跟踪哪些文件已被更改并采取相应措施。
我必须补充一点,这是一个黑客攻击。你的构建流程不应该是有状态的,你需要能够从头开始构建。