You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Jenkins Pipeline自动化在IIS服务器上部署Angular应用?

实现Jenkins自动化部署Angular应用到IIS的配置方案

一、批处理脚本(适配Jenkins自由风格项目)

如果使用Jenkins自由风格项目,可直接添加以下批处理命令,需根据你的实际环境修改路径与站点名称:

:: 切换到Angular项目根目录
cd D:\jenkins_workspace\your-angular-project

:: 安装项目依赖(若依赖已缓存可跳过此步)
call npm install

:: 构建Angular生产环境包
call ng build --prod --output-path=dist

:: 停止目标IIS站点,避免文件被锁定无法覆盖
call "%SystemRoot%\system32\inetsrv\appcmd" stop site "YourIISSiteName"

:: 清空IIS站点物理路径下的旧文件(可选,确保部署环境干净)
rmdir /s /q "C:\inetpub\wwwroot\your-angular-app"
mkdir "C:\inetpub\wwwroot\your-angular-app"

:: 复制构建产物到IIS物理路径
xcopy /E /Y "D:\jenkins_workspace\your-angular-project\dist\*" "C:\inetpub\wwwroot\your-angular-app\"

:: 启动IIS站点完成部署
call "%SystemRoot%\system32\inetsrv\appcmd" start site "YourIISSiteName"

核心注意点:

  • 确保Jenkins服务运行账号拥有IIS站点管理权限和目标目录的读写权限
  • --output-path可自定义构建输出目录,按需调整即可
  • 频繁构建时可配置Jenkins的npm缓存,减少依赖安装耗时

二、Jenkinsfile(推荐流水线项目使用)

使用Declarative Pipeline更便于维护与扩展,示例如下:

pipeline {
    agent any // 若IIS部署在特定虚拟机,需指定对应Jenkins节点标签
    environment {
        PROJECT_DIR = 'D:\\jenkins_workspace\\your-angular-project'
        IIS_SITE_NAME = 'YourIISSiteName'
        IIS_TARGET_PATH = 'C:\\inetpub\\wwwroot\\your-angular-app'
    }
    stages {
        stage('拉取代码') {
            steps {
                git url: 'https://your-repo-url.git', branch: 'main'
            }
        }
        stage('安装依赖') {
            steps {
                bat 'cd %PROJECT_DIR% && npm install'
            }
        }
        stage('构建生产包') {
            steps {
                bat 'cd %PROJECT_DIR% && ng build --prod --output-path=dist'
            }
        }
        stage('部署到IIS') {
            steps {
                bat """
                    "%SystemRoot%\\system32\\inetsrv\\appcmd" stop site "%IIS_SITE_NAME%"
                    rmdir /s /q "%IIS_TARGET_PATH%"
                    mkdir "%IIS_TARGET_PATH%"
                    xcopy /E /Y "%PROJECT_DIR%\\dist\\*" "%IIS_TARGET_PATH%\\"
                    "%SystemRoot%\\system32\\inetsrv\\appcmd" start site "%IIS_SITE_NAME%"
                """
            }
        }
    }
    post {
        success {
            echo 'Angular应用已成功部署到IIS!'
        }
        failure {
            echo '部署失败,请检查日志排查问题!'
        }
    }
}

额外优化建议:

  • 可添加cache步骤缓存node_modules,大幅缩短重复构建时间
  • 若需要重启应用池,可在部署脚本中加入appcmd recycle apppool "YourAppPoolName"
  • 部署前可新增代码检查、单元测试阶段,保障构建产物质量

内容的提问来源于stack exchange,提问作者Subharoop Ghosh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 20:10:05