咱们在实际开发中常常会遇到版本不停迭代,而后咱们须要把webpack打包好的文件上传出到服务器,这个是比较麻烦的,今天我给你们分享一个在vue项目中经过运行npm run build 生成打包好的文件后直接上传服务器,不要咱们每次都手动拷贝。css
这个方案的思路是咱们本身写一个的webpack的插件,在打包完成的时候把生成的文件名和数据经过post请求上传服务器,服务器获取到数据和文件名,从新生成文件到网站的目录下,我这边用node搭建的一个资源服务器.前端
在UplodeFileWebpackPlugin类中定义apply函数,在函数内部咱们注册emit事件,这个事件是生成资源到 output 目录以前调用,在回调函数中咱们能够获取到文件名和文件里面的内容,而后调用upload函数上传文件,须要注意的是在函数后面必定要调用callback,否则webpack不知道你什么执行完成就会卡在哪里.vue
在搭建服服务器的时候咱们须要在启动的时候加下面的代码,由于我在上传的时候碰见了http大小限制的问题node
app.use(bodyParser.json({limit: '10mb'}));webpack
app.use(bodyParser.urlencoded({limit: '10mb', extended: true}));web
在unploadFile中咱们首先先肯定咱们的网页保存的路径,而后本身从新定位一个dist路径,我是保存在当前目录下了,而后在建立须要用到的目录(dist,img,css,js),图片的是不一样的咱们须要解析里面的buffer,若是是图片文件content是一个对象,里面有type,data两个字段,data是数组全部须要解析里面的buffer,而后写入对应的文件就能够了。npm
到这里这个功能基本就实现了,我也是一个初学者,有什么不对的地方你们一块儿讨论。json
以为本文对你有帮助,添加公众号[自学前端之路]数组