0

I want to start a project with reagent and figwheel and I have done it before with that command and it has worked, in fact they still work. But with a new one some of the configurations and versions of dependencies changed and it no longer starts with 'lein fighwheel'. Here is my project.clj

(defproject ajedrez1 "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.9.1"

  :dependencies [[org.clojure/clojure "1.10.0"]
                 [org.clojure/clojurescript "1.10.773"]
                 [org.clojure/core.async  "0.4.500"]
                 [reagent "0.10.0" :exclusions [cljsjs/react cljsjs/react-dom cljsjs/react-dom-server]]]

  :plugins [[lein-figwheel "0.5.20"]
            [lein-cljsbuild "1.1.7" :exclusions [[org.clojure/clojure]]]]

  :source-paths ["src"]

  :cljsbuild {:builds
              [{:id "dev"
                :source-paths ["src"]

                :figwheel {:on-jsload "ajedrez1.core/on-js-reload"
                           :open-urls ["http://localhost:3449/index.html"]}

                :compiler {:main ajedrez1.core
                           :target :bundle
                           :asset-path "js/compiled/out"
                           :output-to "resources/public/js/compiled/out/index.js"
                           :output-dir "resources/public/js/compiled/out"
                           :bundle-cmd {:none ["npx.cmd" "webpack" "--mode=development"]
                                        :default ["npx.cmd" "webpack"]}
                           :source-map-timestamp true
                           
                           :preloads [devtools.preload]}}
              
               {:id "min"
                :source-paths ["src"]
                :compiler {:output-to "resources/public/js/compiled/ajedrez1.js"
                           :main ajedrez1.core
                           :optimizations :advanced
                           :pretty-print false}}]}

  :figwheel {:css-dirs ["resources/public/css"] ;; watch and update CSS}

  :profiles {:dev {:dependencies [[binaryage/devtools "1.0.0"]
                                  [figwheel-sidecar "0.5.20"]]
                   :source-paths ["src" "dev"]
                   :clean-targets ^{:protect false} ["resources/public/js/compiled"
                                                     :target-path]}})

It throws:


Figwheel: Cutting some fruit, just a sec ...
Figwheel: Validating the configuration found in project.clj
Figwheel: Configuration Valid ;)
Figwheel: Starting server at http://0.0.0.0:3449
Figwheel: Watching build - dev
Figwheel: Cleaning build - dev
Compiling build :dev to "resources/public/js/compiled/out/index.js" from ["src"]...
Failed to compile build :dev from ["src"] in 16.531 seconds.
----  Exception    ----

  clojure.lang.ExceptionInfo : :build-cmd :none failed
         java.io.IOException : Cannot run program "npx.cmd": CreateProcess error=2, El sistema no puede encontrar el archivo especificado
         java.io.IOException : CreateProcess error=2, El sistema no puede encontrar el archivo especificado

I tried pulling out:

:exclusions [cljsjs/react cljsjs/react-dom cljsjs/react-dom-server]]
:target :bundle
:bundle-cmd {:none ["npx.cmd" "webpack" "--mode=development"]
              :default ["npx.cmd" "webpack"]}

because the previous projects didn't have it and succesfully compiled but the browser only shows "Figwheel template Checkout your developer console." with "Failed to load resource: the server responded with a status of 404 (Not Found)" on the console.

I tried with 'lein clen' after adding:

:clean-targets ^{:protect false} [:target-path
                                    [:cljsbuild :builds :app :compiler
                                     :output-dir]
                                    [:cljsbuild :builds :app :compiler
                                     :output-to]]

but it's the same.

Just in case, I've been experiencing a stack overflow with the repl when I evaluate the same expresion more than one time, the evaluation's time grows with each repetition. I have to restart it periodically.

  • The original error is telling you to install Node/NPM, as it's using webpack to bundle your assets. As for the second, what is the file it's trying to load when you get the 404? Most likely you need to configure Figwheel to output it's JS file to wherever Webpack was outputing it's bundle before you removed it. – Walton Hoops Sep 27 '20 at 22:22
  • The problem was that I didn't have npm installed. Then it worked. Thank you very much for your answer and your time. Greetings. – Fabricio Cozzarolo Oct 01 '20 at 01:40

0 Answers0