0
我正在試用一個試劑項目,似乎無法使用macros.clj文件。無論我放在哪裏,它都會給我同樣的信息:「無法在類路徑上找到宏/ core__init.class或宏/ core.clj。我應該在哪裏放置我的macros.clj文件,或者我缺少什麼? 的結構如下:試劑ClojureScript
test-proj/
env/
dev/
clj/
test-proj/
middleware.clj
repl.clj
cljs/
test-proj/
dev.cljs
prod/
clj/
test-proj/
middleware.clj
cljs/
test-proj/
prod.cljs
resources/
public/
css/
site.css
src/
clj/
test-proj/
handler.clj
server.clj
cljc/
test-proj/
util.cljc
cljs/
test-proj/
bmi.cljs
core.cljs
home.cljs
macros.clj
simple-examples.cljs
timer.cljs
todo.cljs
target/
classes/
META-INF/
maven/
test-proj/
test/proj/
pom.properties
cljsbuild/
public/
js/
out/
...
app.js
stale/
leiningen.core.classpath.extract-native-dependencies
leiningen.figwheel.clean-on-dependency-change
figwheel_server.log
LICENSE
Procfile
project.clj
README.md
system.properties
我core.cljs文件的命名空間看起來這樣:
(ns test-proj.core
(:require [reagent.core :as reagent :refer [atom]]
[reagent.session :as session]
[secretary.core :as secretary :include-macros true]
[accountant.core :as accountant]
[home.core :as h]
[simple-examples.core :as se]
[bmi.core :as b]
[timer.core :as t]
[todo.core :as td])
(:require-macros [macros.core :as m]))
我macros.core的命名空間如下所示:
(ns macros.core)
我project.clj文件看起來如下:
(defproject test-proj "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.8.0"]
[ring-server "0.4.0"]
[reagent "0.6.0"]
[reagent-utils "0.2.0"]
[ring "1.5.0"]
[ring/ring-defaults "0.2.1"]
[compojure "1.5.1"]
[hiccup "1.0.5"]
[yogthos/config "0.8"]
[org.clojure/clojurescript "1.9.473"
:scope "provided"]
[secretary "1.2.3"]
[venantius/accountant "0.1.7"
:exclusions [org.clojure/tools.reader]]]
:plugins [[lein-environ "1.0.2"]
[lein-cljsbuild "1.1.1"]
[lein-ring "0.11.0"]
[lein-asset-minifier "0.2.7"
:exclusions [org.clojure/clojure]]]
:ring {:handler test-proj.handler/app
:uberwar-name "test-proj.war"}
:min-lein-version "2.5.0"
:uberjar-name "test-proj.jar"
:main test-proj.server
:clean-targets ^{:protect false}
[:target-path
[:cljsbuild :builds :app :compiler :output-dir]
[:cljsbuild :builds :app :compiler :output-to]]
:source-paths ["src/clj" "src/cljc"]
:resource-paths ["resources" "target/cljsbuild"]
:minify-assets
{:assets
{"resources/public/css/site.min.css" "resources/public/css/site.css"}}
:cljsbuild
{:builds {:min
{:source-paths ["src/cljs" "src/cljc" "env/prod/cljs"]
:compiler
{:output-to "target/cljsbuild/public/js/app.js"
:output-dir "target/uberjar"
:optimizations :advanced
:pretty-print false}}
:app
{:source-paths ["src/cljs" "src/cljc" "env/dev/cljs"]
:compiler
{:main "test-proj.dev"
:asset-path "/js/out"
:output-to "target/cljsbuild/public/js/app.js"
:output-dir "target/cljsbuild/public/js/out"
:source-map true
:optimizations :none
:pretty-print true}}
}
}
:figwheel
{:http-server-root "public"
:server-port 3449
:nrepl-port 7002
:nrepl-middleware ["cemerick.piggieback/wrap-cljs-repl"
]
:css-dirs ["resources/public/css"]
:ring-handler test-proj.handler/app}
:profiles {:dev {:repl-options {:init-ns test-proj.repl
:nrepl-middleware [cemerick.piggieback/wrap-cljs-repl]}
:dependencies [[ring/ring-mock "0.3.0"]
[ring/ring-devel "1.5.0"]
[prone "1.1.4"]
[figwheel-sidecar "0.5.8"]
[org.clojure/tools.nrepl "0.2.12"]
[com.cemerick/piggieback "0.2.2-SNAPSHOT"]
[pjstadig/humane-test-output "0.8.1"]
]
:source-paths ["env/dev/clj"]
:plugins [[lein-figwheel "0.5.8"]
]
:injections [(require 'pjstadig.humane-test-output)
(pjstadig.humane-test-output/activate!)]
:env {:dev true}}
:uberjar {:hooks [minify-assets.plugin/hooks]
:source-paths ["env/prod/clj"]
:prep-tasks ["compile" ["cljsbuild" "once" "min"]]
:env {:production true}
:aot :all
:omit-source true}})
錯誤:
---- Could not Analyze src/cljs/test-proj/core.cljs ----
Could not locate macros/core__init.class or macros/core.clj on classpath.
---- Analysis Error : Please see src/cljs/test-proj/core.cljs ----
會很高興知道你爲什麼得到-1。也許這個人認爲你應該已經顯示了你的嘗試 - 你的文件在哪裏,你如何使用它們(代碼)。 –