Code Splitting

shadow-cljs 支持 Code splitting, 以及 Long term caching, 参考这个例子:
https://github.com/minimal-xyz/minimal-shadow-cljs-release

  1. {:source-paths ["src/"]
  2. :dependencies []
  3. :builds {:app {:output-dir "dist/"
  4. :target :browser
  5. :asset-path "."
  6. :modules {:main {:entries [app.main]
  7. :depends-on #{:lib}}
  8. :lib {:entries [app.lib]}}
  9. :release {:module-hash-names true}}}}

其中 :modules 配置中指定打包最终会生成 main.jslib.js 两个文件.
以及 HTML 中需要指定 lib 需要在 main 之前加载, 以保证依赖关系.

:module-hash-names 选项会在文件名上增加 MD5 信息.