放弃了npmrunbuild,转而压缩上传这种低效的操作。使用scp2将构建的文件上传到生产或测试环境。该解决方案本质上是通过ssh进入服务器并将本地文件发送到服务器。嘻嘻缺点很明显,不够安全,版本不能回滚。优点是非常简单。自己判断1.安装scp2npminstallscp2--save-dev#或者cnpminstallscp2--save-dev2.编写测试环境和生产环境的脚本,比如测试环境dev.js和生产环境pro.js,将项目根目录下的内容:dev.jsconstclient=require('scp2');constora=require('ora');constchalk=require('粉笔');constspinner=ora(chalk.green('publishingtotestserver...'));spinner.start();client.scp('./dist/',{//本地包文件“host”的位置:'XXX.XX.XX.XXX',//IP地址"port":'XX',//服务器端口"username":'XXX',//username"password":'*****',//password"path":'/www/wwwroot/test'//项目路径},err=>{spinner.stop();if(!err){console.log(chalk.green("测试服务器是部署。"))}else{console.log("err",err)}})内容:pro.jsconstclient=require('scp2');constora=require('ora');constchalk=require('chalk');constspinner=ora(chalk.green('发布到生产服务器...'));spinner.start();client.scp('./dist/',{//本地的位置包文件"host":'XXX.XX.XX.XXX',//IP地址"port":'XX',//服务器端口"username":'XXX',//用户名"password":'*****',//密码"path":'/www/wwwroot/pro'//项目路径},err=>{spinner.stop();if(!err){console.log(chalk.green("生产服务器已部署。"))}else{console.log("err",err)}})3.忽略.gitignore中的node脚本#不要将服务器账号密码传给git哦亲。jsdev.js4.在package.json中添加脚本命令"pro":"nodepro.js","test":"nodedev.js"5.执行node脚本npmrunbuildnpmruntestexecutenpmrunbuildfirst然后执行npmruntest将打包后的文件上传到服务器,一旦构建的文件出现问题,后悔来得及。如果想一步完成,请看第5步。一步完成版本"pro":"nodepro.js","test":"nodedev.js","upro":"npmrunbuild&&npmrunpro","utest":"npmrunbuild&&npmruntest"比如执行npmrunupro命令后,会先用npmrunbuild执行打包命令,然后执行nodepro.js上传打包文件到生产服务器
