1
當前我正在嘗試使用cljs庫servant。我只需要一個文件,就像在此摘錄:爲cljs中的工作人員需要多個文件
(def worker-script "/main.js") ;; This is whatever the name of the compiled javascript will be
我main.js樣子:
var CLOSURE_UNCOMPILED_DEFINES = null;
if(typeof goog == "undefined") document.write('<script src="js/main.out/goog/base.js"></script>');
document.write('<script src="js/main.out/cljs_deps.js"></script>');
document.write('<script>if (typeof goog != "undefined") { goog.require("boot.cljs.main8234"); } else { console.warn("ClojureScript could not load :main, did you forget to specify :asset-path?"); };</script>');
這將導致該文件沒有定義的錯誤,因爲它正在從一個工人叫我認爲它無法訪問html文檔。 有什麼辦法可以解決這個問題?我曾想過做一個單獨的worker.js
文件,並填寫它:
importScripts('main.out/goog/base.js', 'http://localhost:3000/js/main.out/goog/deps.js', 'main.out/cljs_deps.js');
if (typeof goog != "undefined") { goog.require("../boot.cljs.main8234"); } else { console.warn("ClojureScript could not load :main, did you forget to specify :asset-path?"); };
會的工作,但我還沒有與這樣的成功呢。根據maggimo,我使用引導來組織我的cljs。我的js文件存儲在js
目錄下。如果我沒有提供任何必要的細節,請說出來,我會編輯。
你在暗示我的clojurescript中有代碼只能在主線程上執行。然而,我的問題是,我需要爲工作人員共享上下文而編譯的javascript本身將路徑寫入文檔的JavaScript文件。做你的建議不會解決這個問題。使用管家並沒有真正回答這個問題。 –
您使用什麼級別的優化來編譯您的worker js文件? – Asher
我不知道我理解你的問題。相同的boot + adzerk編譯既用於工作文件又用於主文件,因爲它們是相同的。我從那以後決定嘗試使用更基本的clojurescript編譯方法來了解它是如何工作的。接下來,我可以添加功能,直到我看到添加文檔的位置和原因。然而,對於我提到的假想的worker.js文件,它不會有意外的編譯,因爲它是直接在js中編碼的。 –