SU | MO | TU | WE | TH | FR | SA |
---|---|---|---|---|---|---|
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 | 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
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を読めるようになったが、使いたかったモジュールは依存関係がうまくいかず、あきらめた。