在尝试使用 clj 命令行工具编译和捆绑 clojurescript 与 npm 模块时,有些事情让我感到困惑。
我的 clj 命令:
clj -M --main cljs.main --repl-opts "{:launch-browser false}" --compile hello.core --repl
还有我的 package.json
{
"dependencies": {
"@cljs-oss/module-deps": "^1.1.1",
"react": "^18.2.0",
"solid-js": "^1.7.5"
}
}
我的演示代码
(ns hello.core
(:require
[react :as r] ;; this worked
["solid-js" :as s] ;; this will not work
))
(js/console.log r s)
当我尝试要求 solid-js 时,出现错误:`没有这样的名称空间:solid-js,无法找到 solid_js.cljs、solid_js.cljc 或提供“solid-js”的 JavaScript 源`.
我注意到,与 node_modules/react 不同,node_modules/solid-js 在包文件夹中没有 index.js。是这个原因吗?如何正确导入 solid-js(以及 npm* 中的许多其他包)?
我试过 shadow-cljs ,当使用 shadow-cljs 时 require "solid-js" 效果很好。但我不明白为什么?我想使用 webpack 来打包文件(clojurescript webpack guide)。我必须使用 shadow-cljs 来编译和捆绑应用程序吗?