ClojureScript/OM 配合 descjop 开发笔记

什么是 descjop ?

descjop一个 lein 的模板,使用这个模板生成的项目包括了符合要求的目录结构,以及完备的依赖。
可以方便的开发基于 cljs/om 以及 electron 的桌面应用程序。

如果使用 descjop

使用非常简单,只需要一句命令:

$> lein new descjop YOUR_APP_NAME +om // +om 是添加 om 支持

lein 会更据模板自动生成目录结构,文件

目录结构

.
+-- README.md
+-- app
|   +-- index.html // entry html file
|   +-- js
|   |   +-- cljsbuild-main.js // compiled JavaScript
|   |   +-- externs.js
|   |   +-- main.js
|   +-- package.json // for Desktop app
+-- package.json // for Compile
+-- project.clj // compile settings desktop app
+-- src
|   +-- NAMESPACE
|       +-- core.cljs // ClojureScript for Electron in here
+-- src_front
    +--NAMESPACE_om

直接使用官方的图。非常清晰明了拉。

开始开发

使用命令:

$> lein trampoline figwheel frontend

上面的命令可以启动一个 figwheel.

figwheel 会监控 (watch) src_fontend 命名空间中文件的改动,并在每次修改时重新编译,实时显示到界面上。所以我们的主要开发工作都是在 src_forntend 命名空间中完成的

figwheel的好。不用过是不会了解的。大家都去用用看吧。

figwheel 启动之后,进程就在等待我们的客户端运行起来。事不宜迟,就让我们开始运行应用吧。

运行应用

$> npm install -g grunt-cli #安装 grunt-cli 命令行工具。当然装过就不用装了
$> npm install #安装需要的 npm packages
$> grunt download-electron # 下载 electron 的运行环境。
$ lein externs > app/js/externs.js

编译下启动需要的 cljs 文件

$ lein cljsbuild once

运行喽,走起!

$ ./electron/electron app

以上运行完之后就可以看到窗口出现了,并且打印出了大大的 Hello OM

相关文章

react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...
react 本身提供了克隆组件的方法,但是平时开发中可能很少使...
mobx 是一个简单可扩展的状态管理库,中文官网链接。小编在接...
我们在平常的开发中不可避免的会有很多列表渲染逻辑,在 pc ...