交互时命令行,选择对应文件夹压缩图片文件夹中所有图片极其子图片
// http://tinify.com
const tinify = require('tinify')
// https://www.npmjs.com/package/inquirer
const inquirer = require('inquirer')
const fs = require('fs')
const path = require('path')
const chalk = require('chalk')
// const md5File = require('md5-file')
tinify.key = "YOUR_API_KEY"
// console.log(chalk`{hex('#06f')
const questions = [
{
type: 'list',
name: 'homeDirectory',
message: 'Please select the home directory to be compressed',
choices: ['A', 'B'],
default: 'A',
},
{
type: 'list',
name: 'dir',
message: 'Please select the page to be compressed',
choices: function(answers) {
const { homeDirectory } = answers
PAGE_ROOT_PATH = homeDirectory === 'A' ? './src/aDirectory/' : './src/bDirectory/'
dirs = fs.readdirSync(PAGE_ROOT_PATH)
dirs.sort((a, b) => {
return fs.statSync(PAGE_ROOT_PATH + b).mtime.getTime() -
fs.statSync(PAGE_ROOT_PATH + a).mtime.getTime()
})
return dirs
},
}
]
let PAGE_ROOT_PATH = './src/pages/'
let dirs = null
const imgFilePathArr = []
function deepGetDirectories(distPath) {
const dirArr = fs.readdirSync(distPath)
dirArr.forEach(file => {
if (fs.statSync(distPath + file).isDirectory()) {
deepGetDirectories(distPath + file+'/')
} else {
if (file.match(/(\.png|\.jpg|\.jpeg)$/)) {
imgFilePathArr.push(path.resolve(distPath + file))
}
}
})
}
inquirer.prompt(questions).then(({ dir }) => {
console.log(chalk`\r\n{hex('#090') 开始压缩:${PAGE_ROOT_PATH + dir }/img}\r\n`)
// let db = JSON.parse(fs.readFileSync(__dirname + '/db.json', 'utf8'))
deepGetDirectories(PAGE_ROOT_PATH + dir + '/img/')
imgFilePathArr.forEach(file => {
// const hash = md5File.sync(file)
// if (hash !== db[file]) {
const source = tinify.fromFile(file)
source.toFile(file).then(() => {
// db[file] = md5File.sync(file)
// fs.writeFileSync(__dirname + '/db.json', JSON.stringify(db))
console.log(chalk`{hex('#09f') 压缩完成:${file}}`)
})
// } else {
// console.log(chalk`{hex('#0f9') 文件无需压缩:${file}}`)
// }
})
})
// 最后配置脚本 "compress": "node ./xx/compressor.js"
// 命令行:npm run compress
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
- 找不到素材资源介绍文章里的示例图片?
- 对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
- 模板不会安装或需要功能定制以及二次开发?
- 请QQ联系我们
发表评论
还没有评论,快来抢沙发吧!