当我编译我的Snap webapp(将其部署到生产服务器)时,它达到了 19MB!是什么赋予了?这是正常的吗?难道我做错了什么?
我的站点只有 3 个静态页面,基本上是 snap 的 init 项目。
当我编译我的Snap webapp(将其部署到生产服务器)时,它达到了 19MB!是什么赋予了?这是正常的吗?难道我做错了什么?
我的站点只有 3 个静态页面,基本上是 snap 的 init 项目。
我猜 Snap 会带来很多依赖。这个问题的一种解决方案是使用 --split-objs 选项安装您的项目所依赖的库,不幸的是会影响(初始)编译时间。这将生成大量不同的对象,但会使最终的可执行文件小得多,比如小 2-4 倍。
$ cabal install --enable-split-objs
如果您已经安装了这些库,则需要先删除它们,安装一个新的 GHC 或使用带有它自己的包集的沙箱。
您还应该使用strip
命令(在某些情况下,cabal 会自动执行此操作)。
此外,您可以考虑使用upx
压缩可执行文件,最后rsync
将最小不同的可执行文件上传到服务器。
在这里使用共享库 ( cabal install --enable-shared
) 可能有帮助,也可能没有帮助:我没有尝试过该选项。