Fork me on GitHub
#beginners
<
2019-05-23
>
iagwanderson00:05:48

I am setup s3-wagon-private to deploy some private packages in my company

iagwanderson00:05:57

how can I have access to these repo in other packages?

iagwanderson01:05:30

thnaks @alexmiller I'll read it asap

brandon14902:05:53

Is anybody familiar with compojure-api?

brandon14902:05:22

I'm trying to run it, but it's crashing immediately with Call to clojure.core/fn did not conform to spec. I haven't changed a line of code yet.

seancorfield03:05:40

@bolivier Sounds like you have an outdated version of some library in your stack.

seancorfield03:05:56

compojure-api is widely used and works well. Can you share your project.clj if you're using Leiningen?

tomle.zaku03:05:28

How to import relative path file in clojure

(defn read-file [fname]
  (io/resource fname)
  (with-open [rdr (io/reader fname)]
    (into [] (line-seq rdr))))

tomle.zaku03:05:54

Seem it’s depend where i run repl

brandon14903:05:00

(defproject invyte "0.1.0-SNAPSHOT"
   :description "FIXME: write description"
   :dependencies [[org.clojure/clojure "1.8.0"]
                  [metosin/compojure-api "1.1.11"]]
   :ring {:handler invyte.handler/app}
   :uberjar-name "server.jar"
   :profiles {:dev {:dependencies [[javax.servlet/javax.servlet-api "3.1.0"]
                                  [cheshire "5.5.0"]
                                  [ring/ring-mock "0.3.0"]]
                   :plugins [[lein-ring "0.12.0"]]}})

alexmiller03:05:49

there should be more to the message that points to a place in the code?

brandon14903:05:30

unfortunately, I'm not sure what to make of it

alexmiller03:05:54

so that's in org.clojure/core.unify lib

alexmiller03:05:36

not sure what's pulling that in - there are probably 60+ transitive deps from that project

alexmiller03:05:19

lein deps :why org.clojure/core.unify will tell you the dep path

alexmiller03:05:49

unify spec errors were fixed in 0.5.7

brandon14903:05:00

that command is blank

brandon14903:05:08

well, returns nothing

alexmiller03:05:23

might be coming in through a plugin or some other global profile

alexmiller03:05:15

adding [org.clojure/core.unify "0.5.7"] could potentially workaround it, depends how much you're interested in figuring out the real why vs moving forward right now

alexmiller03:05:51

lein deps :plugin-tree shows plugin tree deps

brandon14903:05:40

the real why is, I'm sure, interesting, but I'm pretty new and would probably be better off just moving forward

seancorfield03:05:15

I wish the beginner docs didn't tell people to use lein-ring but instead taught people how to start Jetty directly in their app, so they could just lein run instead...

seancorfield03:05:29

I don't see core.unify coming in from any of those deps @bolivier -- what do you have in ~/.lein/profiles.clj? I suspect that's more likely to be your problem.

seancorfield03:05:14

(there are certainly plenty of version conflicts in the deps you have in project.clj which is a problem in itself -- but it's not causing that error)

alexmiller03:05:44

(as an aside, you will also probably find the error experience better with lein ring / lein run when using Clojure 1.10.1-RC1, to be actually released in the next week or two)

seancorfield04:05:28

@bolivier I updated your project.clj to use Clojure 1.10.1 and couldn't repro that error message -- so I'm fairly sure it's in your ~/.lein/profiles.clj instead.

brandon14904:05:00

@seancorfield I don't have a ~/.lein/profiles.clj, and when I updated to 1.10.1, I get what looks like the same error still

seancorfield04:05:17

That's weird. I can't repro that here. I don't even see core.unify pulled in from those dependencies...

seancorfield04:05:16

You're on Mac/Linux, right @bolivier?

seancorfield04:05:31

If you run lein deps :tree |wc what does that produce?

seancorfield04:05:41

(I'm expecting 71)

brandon14905:05:54

I'm on linux

brandon14905:05:30

I get a lot of output, oddly enough

brandon14905:05:41

but it ends in 71 164 2978

brandon14905:05:49

so I think that's probably expected

seancorfield05:05:55

Well, yeah, there's all the dependency conflicts...

seancorfield05:05:13

Something in your deps is pulling in leinjacker and that's where the problem is -- it's pulling in an old version of core.unify.

seancorfield05:05:28

If you add [org.clojure/core.unify "0.5.7"] to your project.clj I think you might get past this.

seancorfield05:05:16

(but, frankly, at this point I think I'd recommend looking at clj/`deps.edn` instead of Leiningen so that you're working with something simpler)

seancorfield05:05:21

Are you absolutely sure you don't have a profiles.clj file @bolivier?

seancorfield05:05:22

I just checked and leinjacker is not involved in any of those dependencies -- you must have a profiles.clj file pulling in additional dependencies @bolivier

brandon14905:05:42

Could it be in a different place?

seancorfield05:05:00

What's in ~/.lein?

brandon14905:05:01

I have a ~/.lein dir, but it's empty

seancorfield05:05:19

Really? That's just weird.

brandon14905:05:43

Is there a way I can quickly purge all the deps and re fetch them?

seancorfield05:05:10

What does lein deps | fgrep leinjacker show?

seancorfield05:05:29

or lein deps 2&>1 | fgrep leinjacker

brandon14905:05:30

Couldn't find project.clj, which is needed for deps

seancorfield05:05:47

You must have project.clj for this.

seancorfield05:05:11

You can't be doing any of this without a project.clj file...

brandon14905:05:18

could it have been deleted?

seancorfield05:05:28

It's in your project directory.

seancorfield05:05:07

You can't run lein without that file.

brandon14905:05:11

oh, I didn't realize you meant for me to run int in the projects dir

brandon14905:05:19

the project dir has a project.clj

brandon14905:05:22

and that command has no output

seancorfield05:05:31

Well, of course. That's the project you're having problems with...

brandon14905:05:44

just a silly mix up

seancorfield05:05:22

At this point, I have absolutely no idea. The errors you're reporting can't happen based on what you've told us.

brandon14905:05:24

Well, thanks for trying to help me out

seancorfield05:05:36

None of the dependencies from your project.clj can produce that error.

seancorfield05:05:13

The only way those errors can be produced is from a .lein/profiles.clj file in your home directory.

seancorfield05:05:20

Are you on Windows?

brandon14905:05:26

I'm running Linux

seancorfield05:05:58

Hmm... then I have no idea. Sorry. Your errors make no sense at all 😞

seancorfield05:05:51

I would suggest creating a very basic new project and seeing if you can get it running, and then adding dependencies one at a time until it fails.

brandon14905:05:54

I deleted ~/.m2, figuring some of the java libs might be stored there, and it's definitely fetching leinjacker again

seancorfield05:05:31

I have no idea why -- nothing in your dependencies needs leinjacker

seancorfield05:05:07

Are your sure you don't have a .lein folder in your home directory?

brandon14905:05:32

I do have one, but it's empty

seancorfield05:05:24

At this point, I hate to say it, but I just don't believe you.

seancorfield05:05:01

The error you're reporting cannot be produced from the project file you provided.

brandon14905:05:21

I understand that, but I don't see anything in that directory

brandon14905:05:50

What would be the fix assuming there was a ~/.lein/profiles.clj?

brandon14905:05:58

if you can speculate

seancorfield05:05:22

The fix would be removing the dependencies that are bringing in the problematic libraries.

seancorfield05:05:28

I created a project like this

[email protected]:~/clojure/brandon$ cat project.clj
(defproject invyte "0.1.0-SNAPSHOT"
   :description "FIXME: write description"
   :dependencies [[org.clojure/clojure "1.10.1-beta1"]
                  [metosin/compojure-api "1.1.11"]]
   :ring {:handler invyte.handler/app}
   :uberjar-name "server.jar"
   :profiles {:dev {:dependencies [[javax.servlet/javax.servlet-api "3.1.0"]
                                  [cheshire "5.5.0"]
                                  [ring/ring-mock "0.3.0"]]
                   :plugins [[lein-ring "0.12.0"]]}})
[email protected]:~/clojure/brandon$
and that runs a REPL just fine.

seancorfield05:05:48

If I run lein ring server I get this error

Retrieving ring/ring-jetty-adapter/1.6.1/ring-jetty-adapter-1.6.1.jar from clojars
2019-05-22 22:25:16.562:INFO::main: Logging initialized @2584ms
Syntax error (FileNotFoundException) compiling at (/tmp/form-init4402686125591950306.clj:1:73).
Could not locate invyte/handler__init.class, invyte/handler.clj or invyte/handler.cljc on classpath.
Full report at: /tmp/clojure-6013848232846396032.edn
Subprocess failed

seancorfield05:05:30

(this is why I will not use plugins)

brandon14905:05:35

I can run the repl (in a new project with that project.clj) but I cannot run ring server

seancorfield05:05:16

Right, I can run a REPL but I cannot run lein ring server (and I wouldn't recommend doing that anyway)

brandon14905:05:58

I tried it out on my mac, and I had the same problem

brandon14905:05:07

but I do have a ~/.lein/profiles.clj there

brandon14905:05:50

{:user {:plugins [[cider/cider-nrepl β€œ0.16.0”]]
         :dependencies [[org.clojure/tools.nrepl β€œ0.2.7"]]}}

brandon14905:05:55

That's what's in it

seancorfield05:05:53

I've no idea at this point. Works on my machine.

seancorfield05:05:32

My recommendation: don't use plugins at all; learn to use clj and deps.edn.

seancorfield05:05:04

Leiningen has far too much magic, IMO.

seancorfield05:05:47

For example, tools.nrepl is at 0.2.13 and cider/cider-nrepl is at 0.21.0 so you should at least update those and try again @bolivier

seancorfield05:05:17

(and you probably shouldn't have cider in there at all -- CIDER tries to inject the right version when it starts up anyway)

jyad186605:05:12

Hi, I'm a front end developer and recently fallen in love with clojure, Is there any suggestion and recommendation for someone who just want to start.

seancorfield05:05:01

Clojure for the Brave and True is probably the default recommendation, as something you can follow online

jyad186606:05:22

@seancorfield thanks:+1:

anantpaatra06:05:44

Clojure for the Brave and True is awesome but it is an entire book on Clojure though, and not without its own roadblocks. If you are just trying to get your feet wet it may be too much and end up scaring you. Don't let that happen! Try it, but if you meet a blockade, there are other resources, both paid and free, so just ask us again, maybe giving more details of what you are trying to achieve. Welcome! πŸ™‚

jyad186606:05:05

Thanks, I'm trying to up and running with clojure. I don't know which editor and which tools are popular in the community. I'm using vscode these day happily for front end web development

anantpaatra06:05:17

I believe most people use Emacs, IntelliJ with Cursive or Atom at this point in time. There are people using all the other editors as well. Just one tip: don't try to learn an editor while learning the language, or even to "fine tune" your editor too much. Get syntax highlighting working and use a terminal REPL until the limitations of this setup show up. Learning/working on both things at the same time can make it a rough and unpleasant experience. If you are fine with VSCode, stick with it until you get the basics of the language and the love in your heart grows stronger, and then you you will be better equipped to deviate from the learning path and work on your tools. πŸ™‚

anantpaatra06:05:19

http://spacemacs.org/ is an Emacs starter kit where you can enable a Clojure "layer" that is very solid.

anantpaatra06:05:59

https://github.com/hlissner/doom-emacs is another Emacs starter kit with a very solid Clojure config.

jyad186607:05:21

Many thank, That's great advice thanks2

jyad186607:05:17

and also which resources do u recommend for learning clojure, as you said clojure for the Brave and True maybe not a good choice

anantpaatra07:05:36

Well, those other two books are also regarded as great introductions. The one thing that worked for me was https://purelyfunctional.tv though πŸ™‚ It's paid but he offers regional pricing to make it affordable. If you prefer videos, http://PF.TV is excellent. If you prefer books, those 3 will keep you pretty busy.

anantpaatra07:05:46

Since you come from JS land like I did, here are some interesting articles that I happen to have at hand.

jyad186608:05:29

Many thanks, I'v learned so much

tensordeveloper06:05:45

I generally recommend either quick clojure or mastering clojure if you don't mind buying the books.

jyad186607:05:48

@tensordeveloper thanks I I'm gonna get quick clojure

haiyuan.vinurs07:05:11

hello, i want to use the https://github.com/daviferreira/react-sanfona to build my nav, and i write the test code

haiyuan.vinurs07:05:01

this is the error msg

haiyuan.vinurs07:05:54

i read the readme, and see that the title can be object, it’s that i can define my own component and show it in the title?

nicholas.jaunsen09:05:27

is it possible to make the http-kit client return a channel with the result for async calls instead of a promise? I looked through the docs and I couldn't find anything.

shraddha.paktolus12:05:16

Hi , I want to integrate google and FB sign in in my project .... please suggest me some decent libraries for that

kari.marttila13:05:04

Do you remember when I ordered the Purely Functional yearly subscription using my corporation hideous purchasing system? I managed to do it and they approved the order! Yihaa! This is the first course I'm going to watch this evening after my corporate hours: https://purelyfunctional.tv/courses/repl-driven-development-in-clojure/ I'll tell you my first impressions when I have watched the training video.

alexmiller13:05:18

stick it to the man

kari.marttila13:05:36

I will. πŸ™‚

kari.marttila13:05:27

I just chatted to my line manager today: "Where is my next cool cloud project in which I can create cool infra using Terraform and do some big data processing using Clojure and Spark?"

kari.marttila13:05:49

I'm really burning to use my new Clojure skills to do some great system in some of the mainstream clouds using Terraform and using Clojure to implement the application logic.

kari.marttila13:05:51

BTW. Since the corporation order process wasn't a never ending story after all, I'm considering to order a couple of other good training sites for my corporate life and for Clojure development in the cloud (AWS, Azure, GCP). Any suggestions? For training my next cloud certification (GCP) I considered https://acloud.guru/ which is highly recommended by some of my corporate colleagues. Any comments?

kari.marttila13:05:45

My line manager told me to do a GCP certification - I thought that as part of my studies I could try to build a simple Dataproc system (GCP Hadoop managed service), use some Google published example big data and do some processing using Clojure Spark library, e.g. Flambo (https://github.com/sorenmacbeth/flambo).

kari.marttila13:05:07

... I guess you got my point - another excuse to use Clojure πŸ™‚

kari.marttila13:05:01

BTW. Are there experiences how different Spark is regarding which library you use (Java, Scala, Python or Clojure)?

afoltzm13:05:00

in my experience Scala is the best API to use – it has the most external libraries, its inclination toward immutability meshes well with Spark's execution model, and will overall have a much nicer development experience for those accustomed to a functional style.

afoltzm13:05:46

I've never tried using Clojure for Spark, mostly because it's not supported by Databricks and I can't justify the DevOps overhead for a toy project that uses Clojure to call the Spark API, so I can't really compare it to Scala.

lucascoffey13:05:19

I have what could be a very stupid question … but I just wrote what I think is β€œHello World” in Clojure but there are an insane amount of directories & documents in my β€œproject.” β€” I have always heard that Clojure cuts down on the amount of code and makes things simpler β€” therefore I am worried I did something wrong?

lucascoffey13:05:41

^ Does that look normal?

michael.e.loughlin13:05:43

it looks like you used luminus or similar?

kari.marttila13:05:08

I recommend to delete that project and e.g. download this one: https://github.com/puredanger/demo-deps

lucascoffey13:05:12

I have not idea what that is … but maybe

michael.e.loughlin13:05:22

a leiningen template

kari.marttila13:05:42

You don't need leiningen, luminus etc for learning basic stuff.

michael.e.loughlin13:05:58

here's my basic project layout

lucascoffey13:05:03

I just used the Intellij starter template

afoltzm13:05:44

I think that's your problem - IDEs can be very opinionated about project layout, especially when coming from the Java world where this absurd duplication of namespaces is considered "best practice."

michael.e.loughlin13:05:19

you've ended up with a batteries included bells and whistles template, like checking all the boxes in Visual Studio for an http://ASP.NET project

kari.marttila13:05:04

Clone the demo-deps project and start adding your own functions there...

lucascoffey13:05:30

Okay. Thanks guys. I will keep at this.

alexmiller13:05:47

I wouldn't even bother cloning that project

alexmiller13:05:56

you could just start with a src/hello.clj, and a deps.edn file that is just {} and that's enough

kari.marttila13:05:49

Heh, there you have it - even simpler way to start. πŸ™‚

lucascoffey13:05:53

Can anyone please recommend any up to date Youtube / Udemy / Coursera / Lynda / or Pluralsight videos? β€”

jumar07:05:07

Are you interested in learning Clojure the language or rather how to setup and work efficiently with Clojure tooling/editors?

jumar07:05:39

Anyway, I think the best collection of videos, especially for beginners, is https://purelyfunctional.tv/

jumar07:05:59

Tim Baldridge's videos are great too: https://tbaldridge.pivotshare.com/home

jumar07:05:40

There's some useful stuff on https://lambdaisland.com/ too but sadly author seems to be busy with other things rather than adding more stuff consistently

jumar07:05:12

and although I haven't watched this one it could be useful too: Clojure videos by Brian Will: https://www.youtube.com/watch?v=9A9qsaZZefw&amp;list=PLAC43CFB134E85266

lucascoffey13:05:03

I am coming from Python so I am very familiar w/ Pycharm & Intellij and would love to stick w/ those editors.

alexmiller13:05:24

amac:tmp alex$ mkdir hello
amac:tmp alex$ cd hello
amac:hello alex$ echo "{}" > deps.edn
amac:hello alex$ mkdir src
amac:hello alex$ echo "(ns hello)" > src/hello.clj
amac:hello alex$ clj
Clojure 1.10.0
user=> (require 'hello)
nil

kari.marttila13:05:30

I'm using Cursive with IntelliJ IDEA and I'm very happy with them.

alexmiller13:05:32

boom, a project!

alexmiller13:05:50

you can import that project in Cursive as a deps.edn project and go from there

kari.marttila13:05:14

See: https://cursive-ide.com/ => Very good instructions how to use Cursive.

lucascoffey13:05:50

Thanks for that β€” it looks very helpful.

kari.marttila13:05:47

If you have some issues with how to configure Cursive with deps.edn or something like that - chat here - we help you.

alexmiller13:05:03

(or cursive specific questions in #cursive)

kari.marttila13:05:25

Yep, sorry for forgetting that. #cursive is the place for those questions.

michael.e.loughlin13:05:38

this slack is totally the place to go to get help, lots of friendly faces about

kari.marttila13:05:50

cfleming - the creator of Cursive - is very helpful there.

kari.marttila13:05:45

And if you buy a commercial Cursive license and have any issues related to Cursive - he responds very quickly to your emails and provides excellent support. I have used the support only once and it was amazingly fast and solved my issue right away. Used support only once since Cursive is very stable and intuitive.

kari.marttila14:05:28

Many corporate employees have subscriptions in Pluralsight (https://app.pluralsight.com). There are just a couple of Clojure courses (pretty old). A hint for Clojure gurus - why not create some learning material in Pluralsight (and possibly make some money).

alexmiller14:05:02

the (old) courses are probably still relevant btw

david.folkner14:05:52

I'm struggling to create a test that effectively tests atom watch functions. I have to create a new atom each time and use swap! in order to fire the function. Is there a better way?

samedhi14:05:22

@david.folkner Seems reasonable. Though remember your watch function is just a normal function, so you can test it independently of actually attaching (add-watch ...) it to a atom.

david.folkner14:05:31

Ahh...good point! It has a swap! in it though, so it gets a little messy.

samedhi15:05:48

If you are swap!'ing on the ref that add-watch calls your watcher function with, then that can get kind of complicated. I would consider if there is a way to do what you need without that pattern?

david.folkner15:05:18

There is probably a different way to do it. I did run into an infinite loop at first. I'm making a simple go-fish game. Watch looks for 0 cards in the deck or a players hand, then determines the game is over.

david.folkner15:05:35

(defn game-over-watch
  "Watches game state to determine when game is over.
  Looks for empty deck or player hand.  If game is not complete
  it will swap the state to change it to complete."
  [_ watched _ new-state]
  (when (and (or (zero? (-> new-state :deck count))
                 (some #(zero? (-> % :hand count)) (:players new-state)))
             (not= "complete" (:status new-state)))
    (swap! watched assoc-in [:status] "complete")))

david.folkner15:05:27

I'm very open to any other ideas.

samedhi15:05:37

(defn mark-when-game-is-over
  "Marks the state as complete when the game is over"
  [state]
  (when (and (or (zero? (-> state :deck count))
                 (some #(zero? (-> % :hand count)) (:players state))))
    (assoc-in state [:status] "complete")))


(comp mark-when-game-is-over whatever-function-you-are-currently-passing-to-swap!)

samedhi15:05:34

Trying to stay within the rails of your idea, but maybe just compose your mark-when-game-is-over to the function you pass to swap!

david.folkner15:05:14

Hmmm...that could work. I have lots of other functions, so I'd have to call that a lot. I could macro it up though. That could be good practice.

samedhi15:05:03

Sure, I mean, it is a bit crazy, but you could also make your own swap! with something like (defn completionist-swap! [atm fx & args] (apply swap! atm (comp mark-when-game-is-over fx) args))

dpsutton15:05:51

in turn based games there's often a place to check for winning after each turn

david.folkner15:05:07

Yeah. The game could end mid-turn. I was thinking of using the state to drive everything. So it changes and drives all behavior, but this is just a simple learning app.

samedhi15:05:15

Absolutely. Explore! Have fun.

samedhi15:05:22

Also, macros are hard. πŸ™‚

davecompton715:05:39

I'm trying to "require" reagent.core in a bare bones clojurescript program but getting a compile error: Caused by: clojure.lang.ExceptionInfo: No such namespace: reagent.core, could not locate reagent/core.cljs, reagent/core.cljc, or JavaScript source providing "reagent.core" in file /repos/gitnc/clojurescript_test2/src/demo/static_website.cljs {:tag :cljs/analysis-error} . What do I need to do to make "reagent.core" locatable?

lilactown16:05:01

@davecompton7 have you added the reagent library to your projects dependencies, and restarted the ClojureScript build process?

davecompton716:05:30

no. How do I add the reagent library to my project's dependencies?

lilactown16:05:14

which tool are you using to run your build? lein?

lilactown16:05:21

in your deps.edn, add to your :deps map reagent {:mvn/version "0.8.1"}

lilactown16:05:07

I found this on their clojars page: https://clojars.org/reagent which was linked to on their github: https://github.com/reagent-project/reagent

davecompton716:05:25

Thanks! That did it.

kevin.van.rooijen18:05:45

Does anyone know if I can provide a seed to generate values using spec? For example I can run: (-> int? s/gen g/generate), which generates a random integer. But I’d like to generate an integer based on a seed (so I can reproduce it)

noisesmith19:05:54

clojure.spec.test.alpha uses test.check under the hood, which accepts a :seed keyword arg to check and quick-check

noisesmith19:05:53

it also returns a seed that was used when a failed case is generated

kevin.van.rooijen19:05:29

Ah but that seed is used to re-run a failing test then

kevin.van.rooijen19:05:44

But not to actually generate values for other purposes, at least that’s what it looks like to me

noisesmith19:05:06

it tells you what seed it was using when it failed, so you can use that seed to reproduce the failure

noisesmith19:05:20

nothing stops you from inventing arbitrary seeds and feeding them to the test

noisesmith19:05:54

but it's already randomizing its starting state, so I don't know when you'd need that

kevin.van.rooijen19:05:24

Ahh [org.clojure/test.check "0.10.0-alpha4"] seems to have a generate function that accepts a seed, 0.9.0 didn’t accept one

kevin.van.rooijen19:05:37

Thanks for the help!

david.folkner19:05:59

I'm getting going with web development with clojure and luminus. I have things running in dev locally in my repl. How do I inspect the requests as they come through? I currently put println statements in the functions I care about.

seancorfield19:05:17

@david.folkner println debugging is a perfectly reasonable approach. Are you looking for a way to print all requests? You could write simple middleware for that (there may even be such a thing in a library out there somewhere).

seancorfield19:05:46

(defn print-mw [handler]
  (fn [req]
    (println "request:" req)
    (let [resp (handler req)]
      (println "response:" resp)
      resp)))
That's a middleware function that would print all requests and responses.

david.folkner19:05:25

Gotcha. that's perfect. Thanks. All, would be a bit much, just wanted to inspect data and states...`pprint` it is!

alexmiller20:05:27

if you want less, just filter those maps with select-keys, etc

davecompton723:05:00

I'm trying to use the "-w" option to get a recompile to happen every time my source file changes but it does not seem to be working.

hiredman23:05:23

the -w option to what?

davecompton723:05:05

sorry.... the -w option to cljs.main

davecompton723:05:20

here's the command line that I've tried: rm -rf demo-clojurescript-gh-pages/; clj -m cljs.main -d "demo-clojurescript-gh-pages/out" -c demo.static-website -w demo

davecompton723:05:18

the source file is src/demo/static_website.cljs

davecompton723:05:07

I've tried other options for the path: "demo", "src/demo", "src"

davecompton723:05:07

but in every case the command builds successfully once and then exits.

hiredman23:05:45

what makes you think cljs.main takes a '-w' argument?

davecompton723:05:36

from cljs.main --help output : -w, --watch paths Continuously build, only effective with the --compile main option. Specifies a system- dependent path-separated list of directories to watch.

davecompton723:05:21

that's contained in the output from : clj -m cljs.main --help

davecompton723:05:22

am I misinterpreting that?

hiredman23:05:18

I think you have to specify -w before -c

davecompton723:05:06

I think that's working.