【问题标题】:ClojureScript is throwing a syntax error on simple namespace definitionClojureScript 在简单的命名空间定义上引发语法错误
【发布时间】:2020-11-26 18:06:15
【问题描述】:

我正在努力学习 Clojure 和 Clojurescript;目前正在阅读Living Clojure一书。

我在编译 ClojureScript 时遇到了麻烦……我只是按照书中的说明提出了示例:

(ns cheshire-cat.core)

(defn ^:export init []
  (js/alert "hi"))

我尝试了书上的建议来运行编译器

lein cljsbuild auto

但我收到此错误:

Compiling ClojureScript.
Syntax error macroexpanding clojure.core/ns at (cljsbuild/crossover.clj:1:1).
import - failed: #{:refer-clojure} at: [:ns-clauses :refer-clojure :clause] spec: :clojure.core.specs.alpha/ns-refer-clojure
import - failed: #{:require} at: [:ns-clauses :require :clause] spec: :clojure.core.specs.alpha/ns-require
import - failed: #{:import} at: [:ns-clauses :import :clause] spec: :clojure.core.specs.alpha/ns-import
import - failed: #{:use} at: [:ns-clauses :use :clause] spec: :clojure.core.specs.alpha/ns-use
import - failed: #{:refer} at: [:ns-clauses :refer :clause] spec: :clojure.core.specs.alpha/ns-refer
import - failed: #{:load} at: [:ns-clauses :load :clause] spec: :clojure.core.specs.alpha/ns-load
import - failed: #{:gen-class} at: [:ns-clauses :gen-class :clause] spec: :clojure.core.specs.alpha/ns-gen-class

Full report at:
/tmp/clojure-3119149998558661227.edn

请帮忙?我已经使用 Clojure 工作了几个星期,但刚刚开始使用 ClojureScript。

【问题讨论】:

  • 错误说它在crossover.clj,但是你显示的文件应该是src/cheshire_cat/core.cljs
  • 这是一个可以克隆的简单 CLJS 模板项目。它使用 CLI/DEPS 和 Figwheel,我认为在使用 CLJS 时比 lein 更容易:github.com/io-tupelo/cljs-template

标签: clojure clojurescript


【解决方案1】:

您的问题已在此处解决

https://github.com/emezeske/lein-cljsbuild/commit/3d4d8d8f89f140e6b28aa8ce995c44743e4c6cf3

您应该将您的 cljsbuild 升级到 1.1.8 或将您的 clojure 降级到 1.8.0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-08
    • 2014-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多