但前端的环境没有部署CI/CD的时候,需要手动通过winSCP上传到对应的nginx/apache的静态资源文件夹,长期是一个非常麻烦的过程。使用codeploy 配合git钩子postbuild实现自动化部署可以大大提高开发体验。
codeploy 依赖 ssh2 上传文件到服务器:
安装
npm install codeploy --save-dev
配置
codeploy 从项目根目录下的 package.json 的 codeploy 字段或 codeploy.config.js 读取配置。你需要在项目根目录新建codeploy.config.js,或者在package.json添加codeploy字段。 一个完整的配置应包括以下字段:
/**
* @host 服务器主机 IP
* @port 端口 默认 22
* @username 服务器用户名
* @privateKey ssh 私钥地址(路径)
* @password 服务器登录密码,不推荐使用
* @passphrase 如果私钥被加密,passphrase 用于解密私钥
* @localFolder 上传文件的目录路径 <相对路径>
* @remoteFolder 覆盖服务器的目录,<绝对路径>
*/
{
host: '',
port: 22,
username: 'root',
privateKey: '',
password: '',
passphrase: '',
localFolder: 'dist',
remoteFolder: '/root/test'
}
一般来说,只需要如下配置codeploy即可工作:
{
host: '',
port: 22,
username: 'root',
localFolder: 'dist',
remoteFolder: '/root/test'
}
但如果你没有配置ssh的秘钥登陆,你需要配置服务器密码(但最好不要这样)
{
host: '',
port: 22,
username: 'root',
password: '',
passphrase: '',
localFolder: 'dist',
remoteFolder: '/root/test'
}
运行
npx codedeploy
配置一个 npm 脚本以便使用(可选)
"scripts": {
"codeploy": "codeploy"
}
配合git 的postbuild钩子使用
"scripts": {
"dev": "vite",
"build": "vite build",
"postbuild": "npm run codeploy"
},
这样每次打包就会自动上传前端代码。