關於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)
})