如何从 clojurescript 导入 npm pacakge?

问题描述 投票:0回答:0

在尝试使用 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 来编译和捆绑应用程序吗?

npm clojure clojurescript shadow-cljs
© www.soinside.com 2019 - 2024. All rights reserved.