pipeline { agent any tools { nodejs 'NodeJS16' } environment { // 抽取部署目标路径为公共变量 DEPLOY_DIR = '/data/nginx/www/fafamall/demo' } stages { stage('拉取代码') { steps { checkout scm } } stage('安装依赖') { steps { sh ''' echo "清理旧依赖..." rm -rf node_modules package-lock.json npm cache clean --force echo "设置国内镜像源加速..." npm config set registry https://registry.npmmirror.com # 安装其他依赖 npm install ''' } } stage('构建项目') { steps { sh 'npm run build' } } stage('部署项目') { steps { sh ''' # 公共部署逻辑(创建目录、清理、复制) mkdir -p ${DEPLOY_DIR} rm -rf ${DEPLOY_DIR}/* cp -r dist/* ${DEPLOY_DIR}/ ''' } } } post { success { echo '项目部署成功.' } failure { echo '项目部署失败.' } } }