🚪 介紹
Eask 被構建為用作 Elisp 包中的包開發工具。 但是現在,Eask 支持各種類型的 Emacs Lisp 任務。 它可以通過三種主要方式使用:
- Elisp 包的開發工具
- 配置的依賴管理
- 為所有其他目的運行 elisp 程序
那麼,除上述內容外,Eask 與其他構建工具(如 Cask、makem.sh 和 Eldev 之間的主要區別是什麼?
好問題! Eask 現在不僅僅是一個構建工具,它可以用於各種目的! 但 Eask 的目標是:
- 一致足以跨所有系統進行沙盒
- 通用足以讓 Emacsers 經常使用命令(
byte-compile
、checkdoc
等) - 穩健即使在出現用戶錯誤的情況下也足以提供有用的結果
- 無依賴,使該工具可以在任何平台上運行
附言 有關更多詳細信息,請參閱為什麼使用 Eask?。
Eask
與 Cask 具有相同的理念,請參閱他們的網站 Why Cask?
以了解您為什麼應該這樣做, 使用 Eask(或 Cask)。
Cask、makem.sh 或 Eldev 等許多工具並不**“真正”**支持 Windows。 Cask
已經放棄了對舊版 Windows 的支持,makem.sh
在 bash 上運行,Eldev
確實支持 Windows,
但作者沒有在 Windows 上使用它(沒有完整的測試,請參閱他們的
[CI 工作流程](https //github.com/doublep/eldev/actions/workflows/test.yml))。
Eask
旨在適配所有平台,包括 Linux
、macOS
和 Windows
。 它側重於跨平台能力和每個
操作系統之間的一致性。 如果 Eask 可以在您的機器上運行,那麼它也可以在任何平台上運行。
這是我們的建議; 如果您打算在特定於操作系統的軟件包上工作(從不使用其他平台),請使用其他工具。 另一方面,Eask 旨在提供每個操作系統之間的最佳一致性。 或者,如果你想學習一個隨處可用的工具, Eask 是最好的選擇之一。
該表是通過閱讀這些項目的文檔和源代碼編制的,但作者不是這些工具的專家。 歡迎指正。
該表顯示了作者選擇的技術以及項目的構建方式。 此外,他們做出了哪些技術決策? 放棄支持? 項目佈局? 等等。
Eask | Cask | Eldev | makem.sh | |
---|---|---|---|---|
bin folder | binary, bash, bat | bash, bat | bash, bat, ps1 | bash |
Cross-Platform | ✅ | ❌, 不支援 Windows | ✅ | ❌, 不支援 Windows |
Emacs version | 26.1+ | 24.5+ | 24.4+ | 26.1+ |
Size | 9,000+ 行 | 3,000+ 行 | 8,000+ 行 | 1,200+ 行 |
Executable | ✅ | ❌ | ❌ | ❌ |
Pure Elisp | ❌, JavaScript | ✅ | ✅ | ✅ |
CLI Parser | yargs | commander | 內建 | 內建 |
💡 makem.sh 也有很好的比較文檔,請訪問他們的站點
這是每個工具之間的功能比較。 每種工具都有其優點; 選擇適合您的工具!
如果這些功能沒有在下面列出,要么被遺忘,要么只是被認為太重要了,所以每個工具都有它; 因此我們不將它們添加到列表中。
Eask | Cask | Eldev | makem.sh | |
---|---|---|---|---|
Elisp configuration | ✅, DSL 是可選的 | ❌, 僅 DSL | ✅, 純 elisp | ❌ |
Handle archives failure | ✅, see archives | ❌ | ❌ | ❌ |
create project, etc | ✅ | ❌ | ❌ | ❌ |
link local dependencies | ✅ | ✅ | ✅ | ❌ |
exec program | ✅ | ✅ | ❌ | ❌ |
eval expressions | ✅ | ✅ | ✅ | ❌ |
emacs execution | ✅ | ✅ | ❌ | ❌ |
Built-in linters | ✅ | ❌ | ✅ | ❌ |
Built-in tests | ✅ | ❌ | ✅ | ❌ |
Run script | ✅ | ❌ | ❌ | ❌ |
Self-defined commands | ✅ | ❌ | ✅ | ❌ |
Subcommand | ✅ | ❌ | ❌ | ❌ |
0.9.x
- Improve UX in general0.8.x
- Addlink
command0.7.x
- Fixdefault-directory
isn’t honored by -g option0.6.x
- You can now useeask create
to create an Elisp project0.5.x
- Handle error for failed archive0.4.x
- Add color logger0.3.x
- Add verbosity level and timestamps0.2.x
- Done basic error handling with exit code at the end of executions0.1.39
- Usespawn
insteadexec
; now messages will be printed immediately0.1.x
- Project bare-bones are pretty much complete!
請參考這.
Eask 的設計深受以下項目的影響: