#!/bin/bash
# 指定缓存文件npm目录
NPM_CACHE_DIR="/data/.npm/cache"
# 检查package-lock.json是否存在,存在时计算package-lock.json内容md5值
pgmd5=""
if [[ -e "package-lock.json" ]];
then
pgmd5=`md5sum package-lock.json | cut -d ' ' -f1`
fi
# 在缓存目录中查找package-lock.json内容md5为文件名的压缩缓存文件是否存在
serverFile=`[ -f ${NPM_CACHE_DIR}/${pgmd5}.tar.gz ] && echo true || echo false `
if [ ${serverFile} = true ];
then
echo -e "\033[1;33m 找到依赖压缩文件:>>${pgmd5}.tar.gz 进行解压 \033[0m"
# 修改文件读取时间,服务器每天0点执行清除长期没有访问依赖缓存包
# ls -lh --time=atime 查看文件读取时间命令
# 删除10天前访问的文件
# find . -atime +10 -type f -exec rm -rf {} \;
# find /data/.npm/cache/ -atime +60 -type f -exec rm -rf {} \;
# 修改缓存文件读取时间
touch -a -t `date +"%Y%m%d%H%M.%S"` ${NPM_CACHE_DIR}/${pgmd5}.tar.gz
# 解压缓存文件
tar -zxf ${NPM_CACHE_DIR}/${pgmd5}.tar.gz
# 缓存文件不存在时,进行依赖包安装,安装完成后压缩生成以package-lock.json内容md5值为名称的压缩文件,
# 在下次运行时调用压缩文件
else
echo -e "\033[1;33m 没有找到依赖压缩文件:>>${pgmd5}.tar.gz 进行npm安装,并构建依赖压缩文件 \033[0m"
npm install
tar -zcf ${NPM_CACHE_DIR}/${pgmd5}.tar.gz node_modules
fi
npm安装缓存shell 脚本
最新推荐文章于 2024-05-10 21:05:14 发布