Clojure China

ClojureScript 上手索引

#1

关于历史 http://www.michielborkent.nl/fpamsclj/fpamsclj.pdf

相关主页

主要工具链

Boot

http://boot-clj.com/

boot-reload boot-cljs 这些插件, 用于编译和热替换,
Clojure 社区倾向于使用 Boot, 因为更方便定制编译过程等等,
Boot 的文档比较长, 特别是要开发查边的话要读不少 Wiki.

Figwheel

Figwheel 是一个相当完善的 cljs 代码热替换工具, 功能也比 boot-reload 多不少,
比如详细的报错, REPL, Node.js 支持等等, 甚至处理了 CSS.
Figwheel 是基于 lein 的, 但是也有 boot-figweel, 配置略复杂.

Planck, Lumo

两个都是 REPL, 前者基于 JavaScriptCore, 性能非常高, 启动也非常快,
而 Lumo 基于 V8, 执行速度不如 Planck, 但是对 Node 模块非常友好.
我个人倾向于使用 Lumo, 因为有很大的 npm 模块的需要.

Lein

http://leiningen.org/

Clojure 社区更成熟的建构工具, 但是比如 Boot 灵活, 因为 Lein 只能配置.

Clojars

https://clojars.org

社区名人

David Nolen

ClojureScript 主要维护者, 演讲也主要是他, 他也是 Cognitect 公司员工.
同时也是 Om 作者. 从一开始就参与了 ClojureScript 开发
他的博客里有不少关于 cljs 和 React 方面的思考和总结.
Youtube 上视频比较多, 可以直接用名字去搜索.

Mike Fikes

Planck 作者, Planck 是一款 cljs 的 REPL, 以 JavaScriptCore 为运行环境.
Planck 在之前的时间由于启动速度远远快于 JVM 的 REPL 而大受关注.
似乎他也参与了 Bootstraped ClojureScript 的工作, 比如 core.async 的自举版本.

Shaun LeBron

Parinfer 作者, Parinfer 是一个 Clojure 的括号自动团队和补全工具.
他也参与在 cljs 文档维护当中, 比如 http://cljs.github.io/ 的维护.
另外看到过他做的 cljs tetris 教学的页面, 是个很棒的 Demo

Juho Teperi

大概是很多 boot 插件的维护者, 因为提 Issue 经常都是他在回复.
他的主页上还有 cljsjs 的项目, 就是一些打包好的 js 模块, 可以用 Clojars 安装.

António Nuno Monteiro

Lumo 作者, Lumo 是一个刚发布的 cljs REPL.
由于支持 V8 和 npm, 所以这个工具的前景是非常不错的, 比 Planck 更进一步.
目前项目还在完善当中. 听说这人在 cljs 仓库的 commit 数已经很高了.

视频

ClojureTV 整理了视频列表, 不过 Clojure 为主的:
https://www.youtube.com/user/ClojureTV/playlists

通过 ClojureScript 关键字或者 David Nolen 在 Youtube 搜索到很多视频:

2赞
#2

@jiyinyiyong 题叶,问个问题,你用的是不是Emacs开发?Emacs CIDER怎么在project外启动CLJS REPL?怎么配置的?

#3

我自己造了一个编辑器 https://github.com/Cirru/stack-editor

#4

Thanks, 还不习惯离开Emacs。不过看起来好像很酷的样子,直接在浏览器中很有意思。

#5

我也是用Emacs开发ClojureScript的, 可以直接Cider连接cljs repl,
用cider-connect连接repl, 然后在Emacs的repl的buffer里面执行下面这个函数就可以了:

(defun cljs-client-start ()
  (interactive)
  (progn
    (insert "(use 'figwheel-sidecar.repl-api)\n")
    (insert "(cljs-repl)\n")
    (rename-buffer (replace-regexp-in-string " " " CLJS " (buffer-name)))
    )
  )