从自耕农生成器本身改变dir到新创建的自耕农项目

时间:2016-02-08 15:04:54

标签: javascript yeoman scaffolding yeoman-generator cd

我想将一个项目搭建到同一个命名目录中,在生成器完成其工作后,我希望将用户重定向到该文件夹​​。

所以我接受项目名称作为参数: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文件夹中。有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

Yeoman不会更改用户的目录。

您可以使用process.chdir()

手动执行此操作