You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The classpath indexer checks all classpath entries and looks for CLJS/JS source files and keeps a central index. This is shared among all builds. I added this because I wanted to "query" the classpath to search for specific things (eg. find all namespaces using cljs.pprint) and a few other things.
This however is pointless for builds themselves since they only look up things by name and don't generally need to "search". The test targets search but that should be an independent function and not something done by default.
The indexing is a problem because lots of libraries include a bunch of files they shouldn't include. Often that includes a full set of :none optimized CLJS build output which then confuses the indexer and leads to annoying startup warnings
[2019-10-29 12:04:18.093 - WARNING] provide conflict for #{cljs.reader} provided by cljs/reader.cljs and {"/private/js/out/cljs/reader.js" #{cljs.reader}}
[2019-10-29 12:04:18.094 - WARNING] provide conflict for #{cljs.pprint} provided by cljs/pprint.cljs and {"/private/js/out/cljs/pprint.js" #{cljs.pprint}}
[2019-10-29 12:04:18.095 - WARNING] provide conflict for #{cljs.pprint} provided by cljs/pprint.cljc and {"/private/js/out/cljs/pprint.js" #{cljs.pprint}}
There still seem to be cases where the "bad" compiled files are picked over the actual sources.
Indexing is also a pretty wasteful on projects with large amount of dependencies. In general the indexing of .jar files is a bad idea and should not be done for builds. Just direct lookups by name as the default impls do.
The text was updated successfully, but these errors were encountered:
The classpath indexing is mostly done because of Closure JS code where any given name may not match to a specific filename. Multiple names may be defined in one file. There is also no sort real naming convention.
Could just index .js files and skip others or just load goog/deps.js like CLJS does and enforce strict naming rules otherwise.
The classpath indexer checks all classpath entries and looks for CLJS/JS source files and keeps a central index. This is shared among all builds. I added this because I wanted to "query" the classpath to search for specific things (eg. find all namespaces using
cljs.pprint
) and a few other things.This however is pointless for builds themselves since they only look up things by name and don't generally need to "search". The test targets search but that should be an independent function and not something done by default.
The indexing is a problem because lots of libraries include a bunch of files they shouldn't include. Often that includes a full set of
:none
optimized CLJS build output which then confuses the indexer and leads to annoying startup warningsThere still seem to be cases where the "bad" compiled files are picked over the actual sources.
Indexing is also a pretty wasteful on projects with large amount of dependencies. In general the indexing of
.jar
files is a bad idea and should not be done for builds. Just direct lookups by name as the default impls do.The text was updated successfully, but these errors were encountered: