Node.js实现提取文件名重命名文件名
Posted 前端开发自留地
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js实现提取文件名重命名文件名相关的知识,希望对你有一定的参考价值。
Node.js可以跑服务器,也可以构建一些前端工具,实现例如像.bat后缀的批处理文件,一点击,文件夹里面的图片全部重命名等功能;
需求描述
设计丢来几百个表情文件,我需要提取文件名拼成一个对象将来JS中使用;其次就是重命名文件名喽。
手工修改第一个文件名到一半的时候就放弃了,不能这样搬砖。。。上Node.js,反正电脑上Node早已安装了。
需求拆分
1、提取文件名打印成对象,这个应该妥妥的。在
一文中,
glob(使用shell使用的模式匹配文件)就干过提取文件名为对象给webpack的入口entry用的
2、常用的gulp-rename提供简单的文件重命名方法。
安装
前提假设你已安装了node了。
npm install gulp glob gulp-rename --save-dev
新建gulpfile.js
const gulp = require('gulp');
const path = require('path');
const glob = require('glob');
const rename = require('gulp-rename'); gulp.task('img', callback => {
const files = glob.sync('face/*.svg');
const entry = {}; files.forEach(filepath => {
const pathObj = path.parse(filepath);
//path.parse返回: // { root: '', // dir: 'face', // base: '1f41e-瓢虫.svg', // ext: '.svg', // name: '1f41e-瓢虫' } const ary = pathObj.name.split('-'); entry[ary[0]] = ary[1]; });
console.log(entry);
return gulp.src(files) .pipe(rename(function (path) { path.basename = path.basename.replace(/-.*/,''); })) .pipe(gulp.dest('build')); }); gulp.task('default',['img']);
运行任务
gulp
控制台打印出对象了;生成的build文件夹下文件名都已去掉中文啦。
以上是关于Node.js实现提取文件名重命名文件名的主要内容,如果未能解决你的问题,请参考以下文章