我正在为我的应用程序连接一个自动发布脚本,其中包含几个grunt任务。基本上,我用
grunt.file.readJSON('package.son', {encoding: 'utf8'});
...提取版本并增加它,然后我使用
fs.writeFileSync('package.json', JSON.stringify(packageJson, null, 2), 'utf8');
把它写回来。直截了当。
另一项任务必须使用新的递增版本号标记git-commit并再次读取文件。此时任务仍然会读取旧版本。 (如果我稍后手动查看文件,那么有新版本,所以增量和写入工作)
这里出了什么问题?这是竞争条件还是以某种方式异步执行的繁琐任务?