Webpack+Serverless解决node_modules太大的问题

背景

想做一个手机浏览器插件,双击收藏好看的图片。用serverless做后端,leancloud做数据库。在部署serverless时发现,默认是要上传node_modules的,那也太夸张了吧。我随便装几个依赖,就70M了,这不行。于是想到了用webpack打包来实现,说干就干。

主要坑

target

target需要设置为node,小坑

libraryTarget

开始没设置这个属性,然后打包部署之后,请求接口一直提示超时

{"errorCode":-1,"errorMessage":"Invoking task timed out after 10 seconds","requestId":"ddaa2df566de8e2540272e360b06329c","statusCode":433}

然后提交工单,也没啥用,还让我把node_modules全部传上去,那也太大了,不可能滴。

然后开始去webpack官网看配置,最后找到了他

libraryTarget: 'commonjs2’

**原因:**之前的打包方式没有module.exports=__webpack_exports__这句,导致serverless那边无法调用服务,改成commonjs2就有了

开始

安装webpack依赖

"webpack": "^5.11.1",
"webpack-cli": "^4.2.0"

配置webpack.config.js

const path = require('path');

module.exports = {
  entry: './app.js', // 单入口
  mode: "production",
  output: {
    filename: 'pro.js',
    path: path.resolve(__dirname,'dist'),
    libraryTarget: 'commonjs2', // 这是最关键的,后面讲他的坑
  },
  target: 'node' // 这是最关键的
};


增加启动脚本

"scripts": {
    "start": "node ./bin/www",
    "build": "webpack --progress",
    "deploy": "npm run build && sls deploy"
  },

打包之后,只有1.3M, 部署之后,正常运行,完美

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值