我们将 Clojurescript 1.10.7xx 与 Reagent 一起使用,并导入了一个稍旧的 react-markdown 版本(版本 6.0.3)。该版本的 react-markdown 的源文件之一需要来自不同项目的 .json 文件:
const hastToReact = require('property-information/hast-to-react.json')
这会在 Clojurescript (AFAIK) 生成的 cljs_deps.js 文件中创建对依赖项的引用:
goog.addDependency("../node_modules/react-markdown/src/ast-to-react.js", ['module$home$work$node_modules$react_markdown$src$ast_to_react',
'module$react_markdown$src$ast_to_react'],
['module$home$work$node_modules$react$index',
'module$home$work$node_modules$react_is$index',
'module$home$work$node_modules$property_information$svg',
'module$home$work$node_modules$property_information$find',
// This is the reference to the dependency
'module$home$work$node_modules$property_information$hast_to_react_json',
'module$home$work$node_modules$space_separated_tokens$index',
'module$home$work$node_modules$comma_separated_tokens$index',
'module$home$work$node_modules$style_to_object$index']);
但至少在使用 lein-figwheel 插件运行时,所需的 .json 文件本身永远不会被定义为依赖项。即,cljs_deps.js 文件中缺少此内容:
goog.addDependency("../node_modules/property-information/hast-to-react.json",
['module$home$work$node_modules$property_information$hast_to_react_json',
'module$property_information$hast_to_react_json'],
[]);
缺少的依赖项会阻止代码在 figwheel 下正确加载或重新加载,除非手动将缺少的依赖项插入 cljs_deps.js。
cljsbuild 是否有一个选项允许将 .json 文件的 require 语句合并到 Clojurescript 生成的依赖项中?