Shadow-cljs で JSXを使いたくて調べた結果。
(ns app.sample
(:require ["/js/MyComponent" :refer (MyComponent)] ;; (1)
["../js/MyComponent" :refer (MyComponent)] ;; (2)
["react" :as d])) ;; (3)
"/aaa/bbb.js"
"../aaa/bbb.js"
npm install
したパッケージ: "package-name"
ルートはshadow-cljs.edn
の:source-paths ["path"]
から決まる。
ClojureScriptのデフォルトではJSXに対応しない。
JSXは、babel
などによってjsに変換されて使われている。
Shadow-cljs公式ガイドにやり方書いてある。
Shadow-cljsで使うなら、.jsx
は:source-paths ["path"]
と別の場所において、babel path/to/.jsx --out-dir path/to/source-path --watch
でビルドして、生成物のdirを:source-paths ["path"]
に設定しよう。
babelでJSXを変換するには以下をインストール。
npm install --save-dev @babel/core @babel/cli
npm install --save-dev @babel/plugin-transform-react-jsx
JSXを読めるようになったが、使いたかったモジュールは依存関係がうまくいかず、あきらめた。