{"id":15010679,"url":"https://github.com/adzerk-oss/boot-cljs-repl","last_synced_at":"2025-12-12T01:05:42.188Z","repository":{"id":22279823,"uuid":"25614298","full_name":"adzerk-oss/boot-cljs-repl","owner":"adzerk-oss","description":"Boot task providing a REPL for ClojureScript development.","archived":false,"fork":false,"pushed_at":"2018-10-12T16:17:39.000Z","size":103,"stargazers_count":72,"open_issues_count":17,"forks_count":28,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-07-28T13:47:52.849Z","etag":null,"topics":["boot","boot-tasks","clojure","clojurescript","clojurescript-repl","repl"],"latest_commit_sha":null,"homepage":null,"language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adzerk-oss.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-10-23T02:03:04.000Z","updated_at":"2024-05-31T07:50:13.000Z","dependencies_parsed_at":"2022-08-21T02:00:37.178Z","dependency_job_id":null,"html_url":"https://github.com/adzerk-oss/boot-cljs-repl","commit_stats":null,"previous_names":["tailrecursion/boot-cljs-repl","adzerk/boot-cljs-repl"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/adzerk-oss/boot-cljs-repl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adzerk-oss%2Fboot-cljs-repl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adzerk-oss%2Fboot-cljs-repl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adzerk-oss%2Fboot-cljs-repl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adzerk-oss%2Fboot-cljs-repl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adzerk-oss","download_url":"https://codeload.github.com/adzerk-oss/boot-cljs-repl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adzerk-oss%2Fboot-cljs-repl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270758486,"owners_count":24640253,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-16T02:00:11.002Z","response_time":91,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["boot","boot-tasks","clojure","clojurescript","clojurescript-repl","repl"],"created_at":"2024-09-24T19:35:21.093Z","updated_at":"2025-12-12T01:05:42.144Z","avatar_url":"https://github.com/adzerk-oss.png","language":"Clojure","readme":"# boot-cljs-repl\n\n```clojure\n[adzerk/boot-cljs-repl   \"0.4.0\"] ;; latest release\n[cider/piggieback        \"0.3.9\"  :scope \"test\"]\n[weasel                  \"0.7.0\"  :scope \"test\"]\n[nrepl                   \"0.4.5\"  :scope \"test\"]\n```\n\n[Boot] task providing a ClojureScript browser REPL via [Weasel] and [Piggieback].\n\nThis task **requires Clojure 1.7+** to learn how to pin the Clojure version in a Boot project\nhead to the [Boot wiki](https://github.com/boot-clj/boot/wiki/Setting-Clojure-version).\n\n**NOTE**: Version 0.3.0 changed how the REPL dependencies are handled. For now user is required to add dependencies to necessary libraries to one's project. Cljs-repl task will print the required dependecies when run. \u003csup\u003e\u003ca href=\"#direct_dependencies\"\u003e[1]\u003c/a\u003e\u003c/sup\u003e\n\n## Usage\n\nAdd `boot-cljs-repl` to your `build.boot` dependencies and `require` the\nnamespace:\n\n```clj\n(require '[adzerk.boot-cljs-repl :refer [cljs-repl start-repl]])\n```\n\n`cljs-repl` is the task to be used in the task pipeline whereas `start-repl`\nis how you connect to the ClojureScript REPL once you're in a Clojure REPL.\n\n\u003e It's also a good idea to explicitly depend on the specific version of Clojure\n\u003e and ClojureScript needed for your application.\n\n### Build\n\nStart a build pipeline with file-watcher, ClojureScript REPL server, and\ncompile ClojureScript with no optimizations:\n\n```bash\n# note: cljs-repl task must precede cljs task\n$ boot watch cljs-repl\n```\nor\n```clojure\n(deftask dev []\n  (comp (watch)\n        (cljs-repl) ; order is important!!\n        (cljs)))\n```\n\nFor optional configuration see `boot cljs -h` and `boot cljs-repl -h`.\n\n**Important:** The `cljs-repl` task injects things into your build so\nif you run the compiler before the `cljs-repl` task is being run your\nREPL will not work.\n\n## REPL\n\nTo start evaluating forms in the browser you must first connect to the running\nClojure nREPL server (started by the `cljs-repl` task above) and create a new,\nbrowser-connected CLJS REPL.\n\n#### Terminal\n\n```bash\n$ boot repl -c\n```\n\n```clj\nboot.user=\u003e (start-repl)\n```\n\n#### Emacs Cider\n\n```\nM-x cider-connect\n```\n\n```clj\nboot.user=\u003e (start-repl)\n```\n\n##### The `cljs-repl-env` task\n\nThere is a `cljs-repl-env` task that doesn't start a new nREPL server which you can use via `cider-jack-in`. An example is shown below.\n\n\n```clojure\n(require ...\n    '[adzerk.boot-cljs-repl :refer [cljs-repl start-repl cljs-repl-env]]\n    ...\n    )\n\n(deftask dev []\n  (comp (watch)\n        (cljs-repl-env) ; order is important!!\n        (cljs)))\n```\n\n```\nM-x cider-jack-in\n```\n\n```clojure\nboot.user=\u003e (def p (future (boot (dev))))\n...\nboot.user=\u003e (start-repl)\n```\n\n####  Vim Fireplace\n\n```clj\n:Piggieback (adzerk.boot-cljs-repl/repl-env)\n```\n\n#### Cursive\n\nFirst specify an nREPL-port in the `cljs-repl` task:\n\n```clj\n(cljs-repl :nrepl-opts {:port 9009})\n```\n\nThen create a new nREPL in Cursive: Run -\u003e Edit Configurations -\u003e + -\u003e Clojure REPL -\u003e Remote\n\nPick \"Connect to Server\" and fill in\n\nHost: localhost\n\nPort: 9009\n\n## Help\n\nYou can see the task options available on the command line:\n\n```bash\n$ boot cljs-repl -h\n```\n\nor in the REPL:\n\n```clj\nboot.user=\u003e (doc cljs-repl)\n```\n\n## Notes\n\n### Cljs repl options\n\nYou can pass [Cljs repl options](https://clojurescript.org/reference/repl-options)\nat the `start-repl` call:\n\n```\nboot.user=\u003e (start-repl :cljs-repl-opts {:repl-verbose true})\n```\n\nFrom Fireplace:\n\n```\nFIXME: Not supported...\n```\n\n### Direct dependencies\n\nFor now user needs to add direct dependencies to REPL libs ([piggieback], [weasel])\nto one's project. This is because Boot tasks shouldn't modify the classpath of the\napplication by adding new dependencies, either by calling `set-env!` or though\ntransitive dependencies. The preferred way for Boot tasks to use additional libraries\nis through [pods](https://github.com/boot-clj/boot/wiki/Pods) but because the REPL\nis currently run on the main pod (where your application code runs), it's not\ncurrently possible to use this.\n\n## License\n\nCopyright © 2014-15 Adzerk\n\nDistributed under the Eclipse Public License either version 1.0 or (at\nyour option) any later version.\n\n[2]: http://clojars.org/adzerk/boot-cljs-repl/latest-version.svg?cache=4\n[3]: http://clojars.org/adzerk/boot-cljs-repl\n[Boot]: https://github.com/boot-clj/boot\n[Cider]: https://github.com/clojure-emacs/cider\n[Weasel]: https://github.com/tomjakubowski/weasel\n[piggieback]: https://github.com/nrepl/piggieback\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadzerk-oss%2Fboot-cljs-repl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadzerk-oss%2Fboot-cljs-repl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadzerk-oss%2Fboot-cljs-repl/lists"}