"从未提供所需的命名空间"当ClojureScript文件在不同的文件夹中时

时间:2017-04-12 06:10:42

标签: heroku clojure clojurescript

我有一个基本的Chestnut项目文件夹,src/cljs文件夹设置如下:

cljweb
- algorithms
  - gen-prob.cljs
- core.cljs
- webpage.cljs

gen-prob.cljs中,我有这个命名空间:

(ns cljweb.algorithms.gen-prob)

webpage.cljs中,我需要gen-prob.cljs这样:

(ns cljweb.webpage
  (:require [cljweb.algorithms.gen-prob :as prob]))

这一切似乎都是正确的,但是当我将它编译为Heroku(git push heroku master)时,我收到此错误:

remote:        SEVERE: /tmp/build_c25e7d304d366857019ddcc3f177f680/target/cljweb/webpage.js:7: 
ERROR - required "cljweb.algorithms.gen_prob" namespace never provided
remote:        goog.require('cljweb.algorithms.gen_prob');
remote:        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

当我打开Heroku应用程序(heroku open)时,没有显示任何内容,我收到错误:

Uncaught ReferenceError: cljweb is not defined

这是Heroku网站:

murmuring-brook-22851.herokuapp.com

您可以使用以下方法克隆它:

$ heroku git:clone -a murmuring-brook-22851

将整个文件夹重命名为cljweb

1 个答案:

答案 0 :(得分:1)

命名空间名称中的破折号需要在文件名中用下划线替换。您需要将gen-prob.cljs文件名更改为gen_prob.cljs,如错误消息所示:

  

必需" cljweb.algorithms.gen _ 概率"命名空间从未提供