我想将一个项目搭建到同一个命名目录中,在生成器完成其工作后,我希望将用户重定向到该文件夹。
所以我接受项目名称作为参数:this.argument('name', { type: String, required: false });
然后创建该文件夹并将destinationRoot
更改为:
if (this.name) {
mkdirp(this.name);
this.destinationRoot(this.destinationPath(this.name));
}
毕竟我想在runContext cycle的最后阶段提出cd this.name
。我尝试将destinationRoot
更改为父目录,然后cd
更改为它,它应该可以正常工作,但它不会:
end: function () {
if (this.name) {
console.log('BEFORE', ls('.'))
this.destinationRoot('..');
console.log('AFTER', ls('.'))
cd(this.name);
}
},
这是log:
BEFORE [ 'README.md', 'index.js', 'package.json', 'test.js' ]
AFTER [ 'meow' ]
但它不起作用,因为一旦yeoman完成它的工作,我仍然在currrent文件夹而不是meow
文件夹中。有人知道如何解决这个问题吗?