Uploaded image for project: 'ClojureScript'
  1. CLJS-2402

Duplicate source files passed to Closure Compiler causes ModuleLoader#resolvePaths to throw "Duplicate module path after resolving"


    • Type: Bug
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Affects versions: 1.9.908
    • Fix versions: None
    • Labels:
    • Patch:


      I have a small (not minimal) repo here: https://github.com/au-phiware/boot-parsets

      The repo includes a es6 module and a cljs file that both depend on a node module, which produces the following error.

      Writing main.cljs.edn...
      Compiling ClojureScript...
      • main.js
                                             java.lang.Thread.run                  Thread.java:  748
               java.util.concurrent.ThreadPoolExecutor$Worker.run      ThreadPoolExecutor.java:  617
                java.util.concurrent.ThreadPoolExecutor.runWorker      ThreadPoolExecutor.java: 1142
                              java.util.concurrent.FutureTask.run              FutureTask.java:  266
                              clojure.core/binding-conveyor-fn/fn                     core.clj: 2022
                                    adzerk.boot-cljs/compile-1/fn                boot_cljs.clj:  160
                                         adzerk.boot-cljs/compile                boot_cljs.clj:   72
                                                boot.pod/call-in*                      pod.clj:  413
      org.projectodd.shimdandy.impl.ClojureRuntimeShimImpl.invoke  ClojureRuntimeShimImpl.java:  102
      org.projectodd.shimdandy.impl.ClojureRuntimeShimImpl.invoke  ClojureRuntimeShimImpl.java:  109
                                                boot.pod/call-in*                      pod.clj:  410
                                            boot.pod/eval-fn-call                      pod.clj:  359
                                               clojure.core/apply                     core.clj:  657
                               adzerk.boot-cljs.impl/compile-cljs                     impl.clj:  151
                                             cljs.build.api/build                      api.clj:  205
                                               cljs.closure/build                  closure.clj: 2595
                                   cljs.closure/handle-js-modules                  closure.clj: 2496
                                  cljs.closure/process-js-modules                  closure.clj: 2389
                                  cljs.closure/convert-js-modules                  closure.clj: 1680
                      com.google.javascript.jscomp.Compiler.parse                Compiler.java:  995
                com.google.javascript.jscomp.Compiler.parseInputs                Compiler.java: 1731
            com.google.javascript.jscomp.deps.ModuleLoader.<init>            ModuleLoader.java:   92
      com.google.javascript.jscomp.deps.ModuleLoader.resolvePaths            ModuleLoader.java:  276
      java.lang.IllegalArgumentException: Duplicate module path after resolving: /home/corin/Projects/Demos/boot-parsets/node_modules/d3/d3.js
              clojure.lang.ExceptionInfo: Duplicate module path after resolving: /home/corin/Projects/Demos/boot-parsets/node_modules/d3/d3.js
          from: :boot-cljs
              clojure.lang.ExceptionInfo: Duplicate module path after resolving: /home/corin/Projects/Demos/boot-parsets/node_modules/d3/d3.js
          line: 33

      Run `boot cljs` to reproduce the issue.

      The patch attach removes duplicates from the set of input source files before they are preprocessed. With this patch the repo compiles correctly.


        1. CLJS-2402.patch
          1 kB
          Corin Lawson
        2. patch
          1 kB
          Corin Lawson



            • Assignee:
              phiware Corin Lawson
            • Votes:
              0 Vote for this issue
              1 Start watching this issue


              • Created: