Cider: Tentukan alias deps.edn

Dibuat pada 2 Agu 2018  ·  5Komentar  ·  Sumber: clojure-emacs/cider

Perilaku yang diharapkan

Bahwa saya dapat dengan mudah mengatur koleksi default alias deps.edn untuk digunakan ketika saya mengeksekusi cider-jack-in

Perilaku sebenarnya

Saya tidak dapat menyetel kumpulan alias default untuk digunakan dengan cider-jack-in

Langkah-langkah untuk mereproduksi masalah

Saya punya deps.edn seperti ini:

{:deps {}

 :paths ["src" "resources"]

 :aliases
 {:server {:extra-deps {org.clojure/clojure {:mvn/version "1.9.0"}
                        mount {:mvn/version "0.1.12"}
                        clj-time {:mvn/version "0.14.2"}
                        tick {:mvn/version "0.3.5"}
                        ring/ring-jetty-adapter {:mvn/version "1.6.3"}
                        cheshire {:mvn/version "5.8.0"}
                        garden {:mvn/version "1.3.3"}
                        com.taoensso/timbre {:mvn/version "4.10.0"}
                        hiccup {:mvn/version "1.0.5"}
                        org.clojure/tools.reader {:mvn/version "1.3.0"}
                        clj-http {:mvn/version "3.7.0"}
                        ring/ring-core {:mvn/version "1.6.3"}
                        org.clojure/core.async {:mvn/version "0.4.474"}}}

  :client {:extra-deps {thheller/shadow-cljs {:mvn/version "2.4.24"}
                        com.taoensso/timbre {:mvn/version "4.10.0"}}}

  :client/build {:main-opts ["-m" "shadow.cljs.devtools.cli" "release" "client"]}

  :dev {:extra-deps {binaryage/devtools {:mvn/version "0.9.10"}}
        :extra-paths ["dev"]}}}

Untuk menghindari memuat deps server saat membangun kode sisi klien, saya harus memindahkannya ke alias mereka sendiri dan membiarkan peta deps tingkat atas kosong.

Saya ingin entah bagaimana dapat menentukan satu set alias untuk digunakan dengan proyek khusus ini, sehingga cider-jack-in akan menjalankan clojure dengan -A:server:client:dev ditambahkan ke dalamnya.

Informasi Lingkungan & Versi

Informasi versi CIDER

CIDER 0.18.0snapshot (paket: 20180731.1750)
Clojure 1.9.0

;; CIDER 0.12.0snapshot (package: 20160331.421), nREPL 0.2.12
;; Clojure 1.8.0, Java 1.8.0_31

Versi Lein/Boot

T/A

Versi Emacs

Emacs 25.3.1

Sistem operasi

macOS 10.12.16

Komentar yang paling membantu

Untuk proyek, cukup letakkan konfigurasi khusus proyek di file .dir-locals.el . Itulah mekanisme Emacs standar untuk memiliki konfigurasi khusus proyek. Lihat http://endlessparentheses.com/a-quick-guide-to-directory-local-variables.html

Semua 5 komentar

Saya cukup memasukkan ini ke dalam cider-clojure-cli-global-options :

(setq cider-clojure-cli-global-options "-A:server:client:dev") .

Btw, memanggil cider-jack-in dengan arg awalan juga akan meminta Anda untuk params tambahan (misalnya C-u C-c C-x j j ).

Terima kasih, saya pikir awalan arg ( SPACE u SPACE m ' di spacemacs) adalah yang akan saya gunakan.

Saya masih berpikir memiliki beberapa cara untuk menunjukkan ini untuk sebuah proyek (mungkin kunci di deps.edn?) akan menyenangkan tetapi menambahkan -A:server:client:dev tidak masuk akal.

Untuk proyek, cukup letakkan konfigurasi khusus proyek di file .dir-locals.el . Itulah mekanisme Emacs standar untuk memiliki konfigurasi khusus proyek. Lihat http://endlessparentheses.com/a-quick-guide-to-directory-local-variables.html

Saya mencoba ini di a89b694cc3cec0294d84bf9dbe1163ad2373e8db dan mendapatkan kesalahan:
Wrong type argument: listp, "-A:dev" . Saya juga mencoba (setq cider-clojure-cli-global-options '("-A:dev")) tetapi gagal dengan kesalahan serupa: (wrong-type-argument listp cider-clojure-cli-global-options)

@ro6 Anda dapat menemukan contoh di alam liar menggunakan grep.app: https://grep.app/search?q=cider-clojure-cli-global-options

Saya baru saja memeriksa dengan file dir-locals.el berikut:

((nil
  (cider-clojure-cli-global-options . "-A:async")))

dan jacking memberi saya akses ke alias async seperti yang diverifikasi oleh:

;; Connected to nREPL server - nrepl://localhost:50518
;; CIDER 0.26.1 (Nesebar), nREPL 0.8.0
;; ...
;;  Startup: /usr/local/bin/clojure -A:async -Sdeps '{:deps {nrepl {:mvn/version "0.8.0"} cider/cider-nrepl {:mvn/version "0.25.3"}}}' -m nrepl.cmdline --middleware '["cider.nrepl/cider-middleware"]'
user> 

Saya juga memeriksa komit yang Anda cantumkan a89b694 dan semuanya bekerja dengan baik untuk saya di sana juga. Akhirnya saya mencoba (setq cider-clojure-cli-global-options "A:cljs") dan juga berhasil memulai dengan alias:

;;  Startup: /usr/local/bin/clojure -A:cljs -Sdeps  ...

Bisakah Anda masuk ke lebih banyak langkah dari apa yang Anda coba?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat