boot-clj / boot-clj/boot-cljs

Alternative integration with other tasks, without .cljs.edn

Open
#169 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Clojure
Stars
176
Forks
40
PR merge metrics
No merged PRs in 30d

Description

Currently boot-reload and boot-cljs-repl use `.cljs.edn` files to tell boot-cljs about namespaces that have to be included in the build. Without `.cljs.edn` file Boot-cljs falls back to compiling EVERY `.cljs` file in the fileset. This is usually bad choice.

I think this could be solved by adding another way for other tasks to contribute to Boot-cljs, in addition to the file. Fileset metadata (`meta`) should be easy way to solve this (Clojure metadata on the fileset object, not Boot Fileset metadata, which is tied to files). This will need some testing...

Things to consider:

- How will this work with several cljs builds in the pipeline?
- What if `reload` is only enabled for some of the builds?

Also, can `:ids` be replaced with something else? Maybe the ID could be set manually instead of using the path of the file. That would allow tasks to communicate without .cljs.edn files, and would be even simpler than using the paths.

Contributor guide

Open the contributing guide

Research direction

Start by reading the boot-reload and boot-cljs-repl tasks and how fileset metadata is represented. Define how tasks contribute namespaces without .cljs.edn, including multiple ClojureScript builds and reload enabled for only some builds. Done should include tests covering those cases and the alternative to path-based :ids.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
build-system, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.