2016-07-07 102 views
3

玉不再被称为“玉”。现在我们知道我们是“帕格”。为了将旧的jade项目转换为新的pug格式,您需要将所有旧的.jade文件重命名为.pug文件。如何快速将所有Jade文件转换为Pug文件?

手工操作是痛苦和乏味的,当然有一个快速的方法来做到这一点?

回答

2

我做了这个咕嘟咕嘟任务中的所有文件转换为我一重击:)

它需要gulp-renamedel NPM插件工作。

使用这个命令所有的翡翠文件是根一饮而尽文件夹内(即主一饮而尽文件所在的文件夹)

//Use this if all jade files are inside gulps root folder 

var rename = require("gulp-rename"); 
var del = require('del'); 

gulp.task('switch-to-pug', function() { 
    console.log('\nCreated:\n'); 
    gulp.src(['**/*.jade']) 
     .pipe(rename(function(path){ 
      path.extname = ".pug"; 
      console.log(path.dirname+'/'+path.basename + path.extname+'\n'); 
     })) 
     .pipe(gulp.dest('./')) 
     .on('end', function(){ 
      del(['**/*.jade']).then(function(paths){ 
       console.log('\nDeleted:\n\n', paths.join('\n')); 
      }); 
     }); 
}); 

使用此(和编辑的路径,以满足您的需求),如果有根一饮而尽文件夹之外的文件,你也想重新命名:

//Use this (and edit accordingly) if jade files are also found outside the root folder 

var rename = require("gulp-rename"); 
var del = require('del'); 

gulp.task('switch-to-pug', function() { 
    console.log('\nCreated:\n'); 
    gulp.src(['../**/*.jade']) 
     .pipe(rename(function(path){ 
      path.extname = ".pug"; 
      console.log(path.dirname+'/'+path.basename + path.extname+'\n'); 
     })) 
     .pipe(gulp.dest('../')) 
     .on('end', function(){ 
      del(['../**/*.jade'], { force: true }).then(function(paths){ 
       console.log('\nDeleted:\n\n', paths.join('\n')); 
      }); 
     }); 
}); 

然后只需运行这一点,它会改变所有的文件为你:)

gulp switch-to-pug 
+6

尽管我喜欢喝酒,但在这种情况下,这确实是错误的工具。只需输入'find。 -name'* .jade'| xargs将'/ jade $ /。pug /'重命名为终端会比这更快更简单。 –

+0

我找不到一个简单的方法,通过谷歌搜索批量重命名文件,我知道Gulp有能力做到这一点,所以我最终这样做了。我不知道更好。 –

+0

我编辑过的问题不太具体。介意将你的答案张贴为正确答案? –

0

在Windows上,你可以通过这个命令递归重命名扩展:

for /R %x in (*.jade) do ren "%x" *.pug 

this answer服用。