使用mac的朋友不知道有没有遇到过,windows下ftp复制黏贴毫无压力,可在mac下就只能读不能做其他操作。对于只使用ftp的后台来说,只能前端打包好后给予后台发布,或者上传代码让后台打包自己发布,但两种都不是很友好的方式,这个不友好我相信同仁的都懂。
刚好我有个后台同事做.net啥都会那种,我跟他描述了我的需求和苦恼,然后诱导他帮助我们前台写个npm的包,可以让我们前端在ftp协议下使用window或者mac的同事直接使用命令即可打包上传服务器。好接下来干货来了,不做太多解释直接上使用方式。
npm i ftp-cmd-upload
根目录下新建两个文件:
//ftp.js
const tools = require('ftp-cmd-upload');
Start();
async function Start() {
await tools.cmdTool.Run('npm run build'); //执行打包
await tools.ftpTool.UploadFiles();//执行上传
}
//ftp.config
{
uploadconfig: {
uploadPath: './dist/',//你打包后的文件夹路径
ftpConnectConfig: {
user: '用户名',
host: '你的服务器IP',
port: 21,//默认ftp的端口
password: '密码',
},
remotePath: '/',//上传到服务的目录,ftp根目录下直接斜杠即可
ignoreList: ['upload','update'] //每次都会删除当前服务目录下的文件夹,如果有不让删即可在次配置忽略文件夹,只能忽略文件夹(后续还会强化扩展更新)
}
}
注意事项:
the file is in soucefiles,jsonn5 config. Config the file, it will remove the remotePath first,and make sure the MLSD is disenable
the remotePath must start with /