【发布时间】:2018-11-03 18:25:54
【问题描述】:
我在使用 node.js 生成文件时遇到问题。这些文件不按顺序显示,并且在创建它们的循环完成后,我的自动 git 提交就乱了套。有人能帮助我吗! github 仓库:https://github.com/wendellmva/cli3
class Generator {
constructor(){
this.root = resolve(__dirname, 'generated');
}
clean(done){
if(fs.existsSync(this.root)){
trash(this.root).then(done);
} else {
done();
}
}
execute(){
this.init()
for(let i=0; i<10; ++i) {
const file = resolve(this.root, `file${i}.txt`);
fs.writeFile(file, 'Hello world', (err)=> {
if(err) console.error(err);
console.info('CREATE ', file);
if(fs.existsSync(file)) this.add(file);
if(i==9) this.commit();
});
}
}
init(){
shelljs.exec(`mkdir ${this.root} && cd ${this.root} && git init`);
}
add(file){
shelljs.exec(`cd ${this.root} && git add ${file}`);
}
commit(){
shelljs.exec(`cd ${this.root} && git commit -m "chore: initial commit"`);
}
}
const generator = new Generator();
generator.clean(()=>{
generator.execute();
});
问题 1:提交在执行完成之前开始 导致空提交
问题 2:当生成的文件存在时,在清理完成之前开始执行 导致文件已存在错误 ===> 已解决
问题 3:文件是乱序创建的
Initialized empty Git repository in D:/@cardstrip/cli3/generated/.git/
CREATE D:\@cardstrip\cli3\generated\file2.txt
CREATE D:\@cardstrip\cli3\generated\file3.txt
CREATE D:\@cardstrip\cli3\generated\file0.txt
CREATE D:\@cardstrip\cli3\generated\file1.txt
CREATE D:\@cardstrip\cli3\generated\file4.txt
CREATE D:\@cardstrip\cli3\generated\file5.txt
CREATE D:\@cardstrip\cli3\generated\file7.txt
CREATE D:\@cardstrip\cli3\generated\file9.txt
[master (root-commit) 3442284] chore: initial commit
8 files changed, 8 insertions(+)
create mode 100644 file0.txt
create mode 100644 file1.txt
create mode 100644 file2.txt
create mode 100644 file3.txt
create mode 100644 file4.txt
create mode 100644 file5.txt
create mode 100644 file7.txt
create mode 100644 file9.txt
CREATE D:\@cardstrip\cli3\generated\file6.txt
CREATE D:\@cardstrip\cli3\generated\file8.txt
【问题讨论】:
标签: javascript node.js