多个页面的单个输出文件

Single Output File for Multiple Pages

作为 的后续行动。如果我只有一个输出文件,如何在每个单独的网页上指定 运行 的代码?

一种方法可能是在每个页面中包含一个脚本标记 <script>myproject.somepage.init();</script>。是否有普遍接受的方法?

我认为前一个问题是在单页应用程序的上下文中解释的,在这种情况下,拥有多个输出文件没有意义。

如果您需要在单独的网页中使用不同的行为,我建议您使用 :main 选项为每个网页设置一个条目名称空间:

:cljsbuild {:build [{:id "login"
                     :main my-login.entry
                     :output-to "resources/public/js/login.js"
                     :optimizations :advanced}
                    {:id "feed"
                     :main my-feed.entry
                     :output-to "resources/public/js/feed.js"
                     :optimizations :advanced}]}}

然后在每个网页上要求这些文件。

如果 my-feed.entrymy-login.entry 需要不同的代码,那么这种方法是值得的,并且将 feed 的所有代码也传递给 [=15 是一种浪费=].如果行为几乎相同,并且只是一个参数或一个函数调用的问题,那么您的建议很好。