• Code Splitting

    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 信息.