ClojureScript学习笔记一(Hello World与REPL)
学习一门编程语言就像新出来的婴儿一样,一个裸体可以看清全部。学习编程语言也是一样的,一开始不可以使用任何一个工具。 ClojureScript继承了Clojure简单和富有表现力的语法,编译后的代码可以运行在浏览器和Node.js上面。 编写hello world程序。新建一个目录cljs_first_project,然后还需要建立存放源代码的目录。下载编译器{:target="_blank"},目录结构如下: cljs_first_project |- build.clj |- cljs.jar |- src |- cljs_first_project |- core.cljs 在core.cljs写入如下内容: (ns cljs-first-project.core) (js/alert "Hello world!") 这段代码定义一个命名空间,然后是一个javascript里面的alert弹出框。另外还需要写一个clojure文件来对源代码进行编译,在根目录下新建一个build.clj文件,内容如下: (require 'cljs.build.api) (cljs.build.api/build "src" {:output-to "out/main.js"}) 包含cljs.build.api命名空间,然后调整build函数,此函数接受两个参数,第一个是ClojureScript源代码目录,第二个是是一个map数据结果,这里指定了输出编译后的js的路径。现在使用前面下载的编译器进行编译: Windows下编译 java -cp "cljs.jar;src" clojure.main build.clj *nix下编译 java -cp cljs.jar:src clojure.main build.clj 编译完成后会在out目录生成main.js,同时还有其他一些目录。要运行main.js还需要一个greet.html,内容如下: <html> <body> <script type="text/javascript" src="out/goog/base.js"></script> <script type="text/javascript" src="out/main.js"></script> <script type="text/javascript"> goog.require("cljs_first_project.core") </script> </body> </html> 用浏览器打开greet.html就可以看到alert框了。第一个ClojureScript编写编译完成! 再来一点高级功能,把goog/base.js依赖从html去掉,把goog.require("cljs_first_project")也从html里面去掉,只需要包含main.js就可以让程序跑起来。只需要对build.clj修改一下,内容修改如下: (require 'cljs.build.api) (cljs.build.api/build "src" {:main 'cljs-first-project.core :output-to "out/main.js"}) greet.html的内容如下: ...