关于node环境的配置和环境变量的配置就再也不这个细说了html
1、首先按需求找到须要使用的模块node
fs和path;npm
const fs=require('fs')api
const path=require('path')数组
2、步骤ui
1、获取传入的参数(也就是扩展名),也就是咱们用什么方式改扩展名,以下图传参的方式,(在每次需求提出的时候,咱们首先考虑的是怎么用,而后再考虑怎么写;)spa
node也给咱们提供了获取的方法,process.argv[index];如上图有四个参数,3d
官方文档 https://npm.taobao.org/mirrors/node/latest/docs/api/process.html#process_process_argvcode
const old=process.argv[2]htm
const now=process.argv[3]
2、而后获取所有是指定目录下的指定扩展名的文件,这里会用到两个方法process.cwd()、fs.readdirSync();
该process.cwd()
方法返回Node.js进程的当前工做目录,返回的是一个字符串;
fs.readdirSync();返回的是个数组以下图,必定要传参。fs.readdirSync(path [,options])
const dir=process.cwd()
const filenames=fs.readdirSync(dir)
三、文件名都有了,开始筛选须要修改的名字,可是若是文件夹名有.js,怎么办呢?须要咱们筛选一下,
const list = filenames.filter(item => {
const isFile = fs.statSync(path.join(dir, item)).isFile()
const matchExt = path.extname(item) .substr(1)=== old
return isFile && matchExt
})
四、遍历每个文件,将其扩展名改成指定的值
path.join()
方法path
使用平台特定的分隔符做为分隔符将全部给定的段链接在一块儿,而后对结果路径进行规范化。
下面的source和 target是绝对路径dir再与后面的item拼在一块儿;
fs.renameSync(oldPath,newPath)是替换路径名的方法;
<a href="https://npm.taobao.org/mirrors/node/latest/docs/api/process.html#process_process_argv">https://npm.taobao.org/mirrors/node/latest/docs/api/process.html#process_process_argv</a>
list.forEach(item => {
const source=path.join(dir,item)
const target=path.join(dir,item.replace(old,now))
fs.renameSync(source,target)
})