事情原由: PM要求扒下全項目的圖,統一作 主題色替換。。。。(原先icon等圖片的主題色未作統一)node
我:【一臉問號???】,逗我呢,讓我全局一個個圖片找過去,而後url複製到chrome上一個一個ctrl + S??? 很差意思,我拒絕!!!chrome
項目中的圖片url: https://某某雲.某某項目名.com/日期/xxx.pngbash
const fs = require('fs')
const request = require('request')
const targetDirs = ['./pages', './components', './utils'] // 遞歸的目錄
function mapProjectImagesDownLoad(dir) {
fs.readdir(dir, (err, files) => {
if (err) {
console.error(err)
return false;
}
files.map(file => {
fs.stat(`${dir}/${file}`, (err, stats) => {
if(err) {
console.log(err)
return false
}
if(stats.isDirectory()) {
mapProjectImagesDownLoad(`${dir}/${file}`)
}
if(stats.isFile()) {
const content = fs.readFileSync(`${dir}/${file}`, 'utf-8');
// 域名正則 自行替換。
const regex = /https:\/\/xxx.xxx.com\/.*?[\'\"]/g let result = [] content.match(regex) && result.push(...content.match(regex)) console.log(result) result = result.map(item => { return item.replace(/[\"\';]/g, '')
})
if(result.length > 0) {
result.map((url, index) => {
const name = url.slice(url.lastIndexOf('/') + 1).replace(/[\"\';]/g, '') request(url).pipe(fs.createWriteStream('/Users/yangfan/測試node圖片下載/' + name)); }) } } }) }) }) } targetDirs.map(item => { mapProjectImagesDownLoad(item) }) 複製代碼