Gruntjs 在Grunt任务中存储状态
我面临着以下有趣的问题:Gruntjs 在Grunt任务中存储状态,gruntjs,Gruntjs,我面临着以下有趣的问题: 我想创建一个Grunt任务,该任务在构建/发布过程的各个部分执行 一次调用可能会根据模式对文件进行一些更改,例如在某些文件中替换版本号或Git标记,如#develope 同一版本中的后续调用需要将上述更改“还原”回其原始值 基于以上内容,我需要找到一种方法来跟踪第一次调用中更改的文件,以便在第二步中恢复更改。我不能在第二步中使用模式来避免误报 例如: 启动一个发行版-许多步骤都是其中的一部分,编译、uglify/minify、bump版本号、创建git发行版分支 替
- 我想创建一个Grunt任务,该任务在构建/发布过程的各个部分执行
- 一次调用可能会根据模式对文件进行一些更改,例如在某些文件中替换版本号或Git标记,如
#develope
- 同一版本中的后续调用需要将上述更改“还原”回其原始值
bower.json
中-将其从#develope
更改为#1.2.3
#1.2.3
替换回#develope
#1.2.3
。为此,我需要将更改的文件列表存储在某个位置,或者存储在内存中,或者存储在项目根目录中的临时文件中,例如类似于.grunt replace
。在最后一步读取文件后,插件可能会将其删除
有人在使用这样的Grunt插件吗?你将如何解决这个问题?Grunt是否具有支持上述内容的功能,或者我应该只使用Node.js文件API
<> P>是否有其他模式来考虑在咕哝调用之间保持某种状态? < P>,可以使用文件观察器来保持Grutt进程存活,然后使用事件跟踪状态。 例如:
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']);
};
然后,您可以跟踪哪些文件已更改,并采取相应的行动
但我必须补充一点,这有点像黑客。您的构建流不应该是有状态的,您需要能够从头开始构建