The {{slate}} npm 依赖项依赖于 {{is-plain-object}} 但无法加载。使用以下命令启动 REPL:
clojure -m cljs.main -co '{:npm-deps {"react" "15.5.4" "react-dom" "15.5.4" "slate" "0.33.6" "immutable" "3.8.2"} :install-deps true :repl-verbose true}' -d out -r
(注意,在上述示例中,我们使用默认浏览器 REPL;如果您指定 {{-re node}},则问题不会出现。)
然后,在 REPL 启动并运行后
cljs.user=> (require 'slate)
load-namespace module$private$tmp$test-me$node-modules$slate$lib$slate-es , compiled: ((module$private$tmp$test-me$node-modules$slate$lib$slate_es))
goog.addDependency("../node_modules/slate/lib/slate.es.js", ['module$private$tmp$test_me$node-modules$slate$lib$slate_es'], ['module$is_plain_object', 'module$immutable', 'module$slate_dev_logger', 'module$direction', 'module$esrever', 'module$debug', 'module$lodash$isEqual', 'module$lodash$mergeWith', 'module$slate_schema_violations', 'module$lodash$pick', 'module$lodash$omit', 'module$is_empty']);
goog.require('module$private,tmp$test_me$node_modules$slate$lib$slate_es');
null;
"Error evaluating:" (require (quote slate)) :as "goog.require('module$private$tmp$test_me$node_modules$slate$lib$slate_es');\nnull;\n"
错误:模块 $is plain_object 未定义名称到路径
(out/goog/base.js:1357:26)
(out/goog/base.js:1369:14)
(out/goog/base.js:706:27)
require (out/clojure/browser/repl.cljs:340:25)
请注意,它无法加载 {{module$is plain_object}},这是通过
在 {{out/node_modules/slate/lib/slate.es.js}} 中的
goog.require("module $is plain_object");
指定的。
但您可以直接加载该命名空间
cljs.user=> (require 'is-plain-object)
load-namespace module$private/tmp$test_me$node_modules$ is-plain-object/index , compiled: ([module$private/tmp$test_me$node_modules$ isobject/index] (module$private/tmp$test_me$node_modules$ is-plain-object/index))
goog.addDependency("../node_modules/isobject/index.js", ['module$private/tmp$test_me$node_modules$ isobject/index'], [])
goog.addDependency("../node_modules/is-plain-object/index.js", ['module$private/tmp$test_me$node_modules$ is-plain-object/index'], ['module$private/tmp$test_me$node_modules$ isobject/index'])
null;
这似乎是 Closure 无法找到模块的正确路径,并简单地 emit {{module$
}} 而不是 {{module$}} 作为 {{goog.require}} 的问题的结果