From 8069e64d8c2f99eacf0a38779b08f4f86cb4fab7 Mon Sep 17 00:00:00 2001 From: Bruce Hauman Date: Sun, 29 Jan 2017 18:33:00 -0500 Subject: [PATCH] add node example start adding examples of different figwheel behavior --- .gitignore | 4 +++ examples/node-example/README.md | 31 +++++++++++++++++++ examples/node-example/project.clj | 30 ++++++++++++++++++ .../node-example/src/node_example/core.cljs | 17 ++++++++++ 4 files changed, 82 insertions(+) create mode 100644 examples/node-example/README.md create mode 100644 examples/node-example/project.clj create mode 100644 examples/node-example/src/node_example/core.cljs diff --git a/.gitignore b/.gitignore index 05ea74de..4bef23bd 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,9 @@ example/figwheel_server.log example/node_modules example/server_out example/target +examples/node-example/node_modules +examples/node-example/figwheel_server.log +examples/node-example/target support/target sidecar/target plugin/target @@ -36,6 +39,7 @@ pom.xml.asc .lein-classpath config.ru +figwheel_server.log *~ *-init.clj sidecar/figwheel_server.log diff --git a/examples/node-example/README.md b/examples/node-example/README.md new file mode 100644 index 00000000..d16a9a99 --- /dev/null +++ b/examples/node-example/README.md @@ -0,0 +1,31 @@ +# node-example + +A simple figwheel node example. + +Make sure you have ws installed + + npm install ws + +Start figwheel + + lein figwheel + +Start node + + node target/js/compiled/node_example.js + +Make sure your REPL isn't connecting to a browser. + +Now you can interact in the REPL and edit and save `src/node_example/core.cljs` + +## Things of note in the project.clj + +In the `project.clj` you will see the build has `:target :nodejs`. It +is also important to set `:asset-path` so that you can launch node +from the root of the project. + +## License + +Copyright © 2014 FIXME + +Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version. diff --git a/examples/node-example/project.clj b/examples/node-example/project.clj new file mode 100644 index 00000000..dd98d22e --- /dev/null +++ b/examples/node-example/project.clj @@ -0,0 +1,30 @@ +(defproject node-example "0.1.0-SNAPSHOT" + :description "FIXME: write this!" + :url "http://example.com/FIXME" + :license {:name "Eclipse Public License" + :url "http://www.eclipse.org/legal/epl-v10.html"} + + :min-lein-version "2.7.1" + + :dependencies [[org.clojure/clojure "1.9.0-alpha14"] + [org.clojure/clojurescript "1.9.229"]] + + :plugins [[lein-figwheel "0.5.9-SNAPSHOT"]] + + :source-paths ["src"] + + :cljsbuild {:builds + [{:id "node-dev" + :source-paths ["src"] + :figwheel true + :compiler {:main node-example.core + ;; in order to call node from root of project + ;; need to asset same as :output-dir + :asset-path "target/js/compiled/out" + :output-to "target/js/compiled/node_example.js" + :output-dir "target/js/compiled/out" + :source-map-timestamp true + ;; !!! need to set the target to :nodejs !!! + :target :nodejs}}]} + +) diff --git a/examples/node-example/src/node_example/core.cljs b/examples/node-example/src/node_example/core.cljs new file mode 100644 index 00000000..9d6f22bf --- /dev/null +++ b/examples/node-example/src/node_example/core.cljs @@ -0,0 +1,17 @@ +(ns node-example.core + (:require [cljs.nodejs :as nodejs] + [goog.object :as gobj] + [goog.string :as gstring] + [clojure.string :as string])) + +(nodejs/enable-util-print!) + +(println "Hello from the Node!") + +(defn helper [] "hey there") + +(def -main (fn [] nil)) + +(set! *main-cli-fn* -main) + +