         need-compile?
         (boolean (seq recompile-sources))
 
-        ;; restore cached output so the convert can use it
         state
-        (if-not (seq cache-files)
-          state
+        (if-not need-compile?
+          ;; restore cached output, cannot do incremental compiled due to closure being picky about names
           (util/with-logged-time [state {:type ::closure-cache-read
                                          :num-files (count sources)}]
             (-> state

                            (assoc-in [:output resource-id] cached-output)
                            (update :js-properties set/union properties))
                        )))
                  cache-files))))

        state
        (if-not need-compile?
          state
          (convert-sources* state recompile-sources cache-files))

        cache-index-updated
        (if-not need-compile?
          cache-index
          (util/with-logged-time [state {:type ::closure-cache-write
                                         :num-files (count recompile-sources)}]
            (-> cache-index
                (assoc :SHADOW-CACHE-KEY SHADOW-CACHE-KEY
                       :CACHE-OPTIONS cache-options

             #_(map #(do (println (.getCode %)) %))
             (into []))

        source-files-by-name
        (->> source-files
             (map (juxt #(.getName %) identity))
