2017-09-22 11 views
2

J'écris l'application électronique avec ClojureScript et obtenir ce comportement bizarre:ClojureScript app Electron __dirname renvoie nil

(ns hello-world.core 
    (:require [cljs.nodejs :as nodejs])) 

(nodejs/enable-util-print!) 

(def electron (nodejs/require "electron")) 

(def app (.-app electron)) 

(defn on-ready [] 
    (prn (js* "__dirname"))) ; => nil 

(defn -main [& args] 
     (prn (js* "__dirname")) ; => "/Users/alex/source/electron-cljs/out" 
     (.on app "ready" on-ready)) 

(set! *main-cli-fn* -main) 

Comme vous pouvez le voir, __dirname est résolu bien en fonction -main, mais il retourne nul dans mon rappel "prêt" électronique. Pourquoi cela ne fonctionne-t-il pas dans le rappel?

Répondre

0

Je ne sais pas si cela va le réparer pour vous, mais vous pouvez essayer d'utiliser js/__dirname au lieu de js*? js* est une fonction interne utilisée par ClojureScript, et non pour un usage public AFAIK.