Bitbucket Pipelines如何仅部署dist目录内的文件到生产服务器
Bitbucket Pipelines仅部署dist目录内部文件的配置方案
方案1:新增LOCAL_PATH参数(推荐,适配绝大多数官方FTP部署pipe)
绝大多数Bitbucket官方提供的FTP/CPanel部署pipe都支持LOCAL_PATH变量,指定该参数为dist/后,pipe会直接读取dist目录下的所有内容上传到远程目标路径,不会携带dist文件夹本身。
修改后的部署step配置如下:
- step: name: Deploy to CPANEL deployment: production script: - pipe: (....你的原部署pipe标识) variables: USER: $ftp_user PASSWORD: $ftp_password SERVER: $ftp_host REMOTE_PATH: $ftp_remote_path LOCAL_PATH: 'dist/' # 新增该行即可
方案2:提前移动文件(适配无LOCAL_PATH参数的部署pipe)
如果你使用的部署pipe不支持自定义本地路径,可以在执行部署操作前,将dist目录内的所有文件移动到流水线工作目录根路径,再执行部署:
- step: name: Deploy to CPANEL deployment: production script: # 移动dist下所有文件到工作目录,包含隐藏文件,同时删除空dist目录 - shopt -s dotglob nullglob && mv dist/* . && rm -rf dist - pipe: (....你的原部署pipe标识) variables: USER: $ftp_user PASSWORD: $ftp_password SERVER: $ftp_host REMOTE_PATH: $ftp_remote_path
注意:如果不需要同步dist下的隐藏文件(如.htaccess、.npmrc等),可以去掉
shopt -s dotglob nullglob部分,直接写mv dist/* . && rm -rf dist即可。
方案3:自定义部署脚本调整
如果你没有使用官方pipe,而是自己写的部署命令,直接指定部署路径到dist目录内部即可,比如用scp命令的话写法为:scp -r dist/* $ftp_user@$ftp_host:$ftp_remote_path
内容的提问来源于stack exchange,提问作者Alberto Torrisi
相关产品推荐
相关产品推荐

