如何使用Yeoman检查目录是否存在?

问题描述 投票:1回答:3

我问用户一个目录名,然后如果该目录存在,我想问他们是否要存档它。但是我不确定在Yeoman里面可以用什么功能来实现这个目的。这是我的代码。

prompting: function () {
    return this.prompt([{
        type: 'input',
        name: 'project_directory',
        message: 'What is the project directory name?'
    }, {
        type: 'confirm',
        name: 'archive',
        message: 'That project already exists. Do you want to archive it?',
        when: function (answers) {
            var destDir = 'project/' + answers.project_directory.replace(/[^0-9a-zA-Z\-.]/g, "").toLowerCase();
            var fso = new ActiveXObject("Scripting.FileSystemObject");

            //Return true if the folder exists
            return (fso.FolderExists(destDir));
        }
    }]).then(function (answers) {


    }.bind(this));
}
javascript yeoman yeoman-generator
3个回答
3
投票

Yeoman没有提供任何内置方法来验证文件或目录是否存在。

但Yeoman只是Node.js,它只是JavaScript。

所以你真的想问问how to detect if a directory exist with Node


0
投票

如果你继承自Generator,你有this.fs对象有exists()方法。

module.exports = class extends Generator {
      /* ... */
  default() {
    this.alreadyCopied = this.fs.exists(this.destination('myfile.txt'));
  }
}

0
投票

实际上,正如Simon Boudrias所提到的,Yeoman没有为它提供内置方法,但您可以执行以下操作:

var Generator = require('yeoman-generator');
var fs = require('fs');

module.exports = class extends Generator{

    checkIfFolderExists(){    

        fs.stat('YourDirectoryHere'), function(error, stats){            

        if(stats!=undefined && stats.isDirectory()){
           // your directory already exists.          
        }else{
           // create your directory.
        }

        }) ;            
    }         
}
© www.soinside.com 2019 - 2024. All rights reserved.