背景
项目有多个开发环境,作者希望项目打包后可以自动上传到服务器,省略掉本地打包-连接服务器-上传文件
等一系列操作,提高工作效率
解决方式
使用scp2
-
安装scp2
npm install scp2 --save-dev
-
在根目录下生成
dev.js
脚本
javascript
const client = require('scp2');
const ora = require('ora');
const chalk = require('chalk');
const spinner = ora(chalk.green('正在发布到测试服务器...'));
spinner.start();
client.scp('./dist/', {
"host": 'xxx.xxx.xx.xx',
"port": 'xxx',
"username": 'xxxx',
"privateKey": require('fs').readFileSync('/path/to/your/private/key'),
"path": '/www/websites/www/pt/dist/11'}, err =>{
spinner.stop();
if (!err) {
console.log(chalk.green("测试服务器部署完毕。"))
} else {
console.log("err", err)
}})
使用SSH密钥认证(更安全)
-
在.gitignore中忽略node脚本( 安全性)
-
在package.json中添加脚本命令
rust
'dev:server':'npm run build && node dev.js
dev:server
将打包和部署放在同一个指令执行