We're updating the issue view to help you get more done. 

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

Description

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.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 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.

Environment

None

Status

Assignee

Unassigned

Reporter

Corin Lawson

Labels

Approval

None

Patch

Code

Affects versions

1.9.908

Priority

Minor