如何使用 Yeoman 检查目录是否存在?
How to check if directory exists using Yeoman?
我要求用户提供目录名称,然后如果该目录存在,我想询问他们是否要将其存档。但是我不确定我可以在 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));
}
Yeoman 不提供任何内置方法来验证文件或目录是否存在。
但 Yeoman 只是 Node.js,它只是 JavaScript。
所以你其实想问how to detect if a directory exist with Node。
如果您继承自 Generator,则您有 this.fs
个具有 exists()
方法的对象。
module.exports = class extends Generator {
/* ... */
default() {
this.alreadyCopied = this.fs.exists(this.destination('myfile.txt'));
}
}
实际上,正如 Simon Boudrias 所说,Yeoman 没有为此提供 built-in 方法,但您可以执行以下操作:
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.
}
}) ;
}
}
我要求用户提供目录名称,然后如果该目录存在,我想询问他们是否要将其存档。但是我不确定我可以在 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));
}
Yeoman 不提供任何内置方法来验证文件或目录是否存在。
但 Yeoman 只是 Node.js,它只是 JavaScript。
所以你其实想问how to detect if a directory exist with Node。
如果您继承自 Generator,则您有 this.fs
个具有 exists()
方法的对象。
module.exports = class extends Generator {
/* ... */
default() {
this.alreadyCopied = this.fs.exists(this.destination('myfile.txt'));
}
}
实际上,正如 Simon Boudrias 所说,Yeoman 没有为此提供 built-in 方法,但您可以执行以下操作:
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.
}
}) ;
}
}