以前我写过关于使用@vercel/ncc 进行node 应用快速部署的,同时对于node 应用的大小会减少不少
app 参考玩法
简单说明:
简单玩法可以直接基于ncc 构建就行了,我们可以all-in-one 然后基于ncc build, 会自动处理我们的依赖包,然后我们的项目复制构建之后目录的文件通过node index.js 运行就可以了,不需要外部依赖了,比较适合无网以及快速运行的场景
共享库参考玩法
简单说明:
我们希望对于三方的,或者对于自己开发的包,也希望裁剪大小(基于ncc 模式),我们可以构建为一个独立的裁剪包,然后pack 为一个tgz 文件
上传到s3中,之后对于新依赖的项目可以直接使用tgz 文件,或者将上边的裁剪包发布到npm私服,之后新应用使用
说明
github 我提供了一个简单的项目可以参考使用rongfengliang/vercel-ncc-npm-minify-learning
属于一个all-in-one 的,使用了npm postinstall script
以及options 依赖,基于ncc 工具,可以解决不少node 项目运行的问题,同时,还可以使用同一个包的多版本(因为ncc 里边的包是隔离的)
参考资料
https://github.com/rongfengliang/vercel-ncc-npm-minify-learning
https://www.npmjs.com/package/mock-private-registry
https://github.com/verdaccio/verdaccio
https://github.com/vercel/ncc