gpt4 book ai didi

clojure - 为 Compojure 应用程序自动构建 Clojurescript 文件

转载 作者:行者123 更新时间:2023-12-02 10:22:43 37 4
gpt4 key购买 nike

我有一个 Web 应用程序,我在服务器上使用 Compojure,在客户端上使用 Clojurescript。我正在使用 leing-cljsbuild 插件自动将 cljs 文件编译为 js。

当我将优化设置为 :whitespace:simple 时,我能够生成所需的客户端文件并将它们加载到浏览器中,但是当我设置如果优化为 none,js 文件会使用本地文件系统路径引用其依赖项,这会导致文件根本无法在浏览器中加载。

所以,我的问题是如何使生成的文件在由 clojurescript 编译器生成时使用服务器 URL 而不是本地文件路径。

这是我的project.clj 文件

(defproject my-proj-clj "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"

:dependencies [[org.clojure/clojure "1.5.1"]
[compojure "1.1.6"]
[org.clojure/tools.nrepl "0.2.3"]
[hiccup "1.0.3"]
[com.novemberain/monger "1.5.0"]
[org.clojure/clojurescript "0.0-2127"]
[jayq "2.5.0"]
]

:plugins [[lein-ring "0.8.8"]
[lein-cljsbuild "1.0.1"]
]

:ring {:handler my-proj-clj.handler/app
}

:cljsbuild { :builds
[{
:source-paths ["src/my-proj-clj"]
:compiler {
:output-dir "./resources/public/js"
:output-to "./resources/public/js/cljs-file.js"
:pretty-print true
:source-map "./resources/public/js/cljs-file.js.map"
:optimizations :none
}}]}

:profiles {:dev {:dependencies [[javax.servlet/servlet-api "2.5"]]}}

最佳答案

我相信唯一有效的优化值是 :whitespace、:simple 或 :advanced。请参阅第 96 行 https://github.com/emezeske/lein-cljsbuild/blob/1.0.1/sample.project.clj .

因此我会使用 :whitespace 作为优化级别(至少让某些东西正常工作)。

根据您的帖子,:whitespace 的优化级别有效吗?因此,也许你可以详细说明。

您期望“:none”优化级别产生什么结果。您的预期结果与 :whitespace 优化级别产生的结果有何不同?

优化级别为 :none 意味着 cljsbuild 不会从 cljs 源生成 js(它将生成一些 goog.include 语句,但不会生成其他内容)。尝试使用交互式 repl 来帮助您制作原型(prototype)。尝试运行以下命令:lein Trampoline cljsbuild repl-rhino

希望有帮助。

关于clojure - 为 Compojure 应用程序自动构建 Clojurescript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20917202/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com