部署
优质
小牛编辑
134浏览
2023-12-01
在应用 san build [entry] --remote <remote-name>
时,使用的就是此远程部署解决方案,支持从项目本地将生产环境编译产出直接远程部署到目标开发机。
使用时,需要进行相应的 环境配置 以及 参数配置,下面具体说明如何配置。
环境配置
remote-name 为一组开发机配置项集合的名称,开发配置项需要在 .env.production 文件中进行配置,具体写法方式参考环境变量。
参数配置
基础参数
receiver
远程服务 receiver.php 地址,receiver.php 文件内容参考
templatePath
远程服务模板存放地址,产出文件 .tpl 结尾的文件会上传到此路径下。
staticPath
远程服务静态文件存放地址。
静态域名替换相关
staticDomain
静态文件服务域名。
baseUrl
需要被替换成远程静态文件服务域名的域名串
fsr 相关(百度内部使用,参考fsr)
disableFsr
是否禁用 fsr 安全部署服务,值为 true 或 false,默认是 false ,使用 fsr 安全部署服务(除百度内部外,此字段必须设置为 true)
host
配置此项前提是,disableFsr 为 false,启用了 fsr 安全部署服务,用于替换原来的 reciever 配置,拼接成该此项设置的域名。
例如
# 环境配置文件 .env.production
SAN_REMOTE_XIAOMING_DISABLE_FSR=true
SAN_REMOTE_XIAOMING_RECEIVER=http://www.xiaoming.com:8080/receiver.php
SAN_REMOTE_XIAOMING_TEMPLATE_PATH=/home/work/nginx_static/html/test/template
SAN_REMOTE_XIAOMING_STATIC_PATH=/home/work/nginx_static/html/test/static
SAN_REMOTE_XIAOMING_STATIC_DOMAIN=http://test.bdstatic.com:8888
SAN_REMOTE_XIAOMING_BASE_URL=http://www.cdnstatic.com
SAN_REMOTE_XIAOMING_HOST=http://www.xiaoming.com:8080
# 执行
san build --remote xiaoming
注意: 上例解读
- 命名规则 SANREMOTE( remote-name 名称大写)_ (参数名称大写,驼峰处改用下划线分割);
- 将 tpl、js、css 文件代码中 http://www.cdnstatic.com 替换成 http://test.bdstatic.com:8888 。
简单说实现
使用deploy-files插件。
安装 deploy-files:
npm i deploy-files
写法引入方式
webpack 插件方式使用 引入:
const DeployPlugin = require('deploy-files/webpack-plugin');
方式一:webpack 链式使用方式
chainConfig.plugin('deploy-files').use(DeployPlugin, [remoteObj]);
方式二:webpack Config 中配置 plugins
plugins: [
...,
new DeployPlugin(remoteObj)
]
注意: remoteObj 即为上方部署中的相关配置参数。