2024 Clojure 状态调查! 中分享您的想法。

欢迎!请查看关于页面了解此工作的更多信息。

+8
ClojureScript

作为一名新的 clojurescipr 开发者,我想知道哪一个更好。

  1. fighweel
  2. shadowcljs

我相对较新,想坚持使用其中之一。请就两者的优缺点向我说明,以便我做出明智的决定。祝您有美好的一天

3 答案

+5

被选定
 
最佳答案

Figwheel-main 和 shadow-cljs 都是不错的选择。

总的来说,使用哪个工具取决于您如何构建您的应用程序。

如果您只使用 ClojureScript 或 ClojureScript 与一些 JavaScript 库(作为捆绑包或 cljsjs),请使用 Figwheel-main。

Figwheel-main 的组成部分比 shadow-cljs 少,因此学习和工作起来非常简单。

如果您基于 npm 包和 node.js 工具进行应用程序开发,请使用 shadow-cljs。您还应了解您希望使用的 npm 包,并且可能需要了解 JavaScript 来修复这些包中的错误。

Shadow-cljs极大地简化了与npm和Node世界的协作,然而,因为涉及到更多元素,所以还有更多东西要学习。强烈建议您阅读https://shadow-cljs.github.io/docs/UsersGuide.html,并仔细遵循其中的指导。

如果您不确定,我会从Figwheel-main开始。您在使用Figwheel-main项目中编写的所有代码都应该能在Shadow-cljs项目中工作。

by
请注意,Figwheel支持npmhttps://figwheel.org/docs/npm.html——尽管我自己没有尝试过使用它。

Thomas Heller在他的博客中讲述了为什么他认为Shadow-cljs仍然是一个更好的选择https://code.thheller.com/blog/shadow-cljs/2020/05/08/how-about-webpack-now.html——但我想知道那些选择figwheel+npm(例如dnolen?mfikes?)而不是Shadow的人的看法。
by
:bundle选项用于使用figwheel-main与npm包结合。在原始帖子中我没有深入介绍这一点。

我并不需要使用npm来创建有趣的ClojureScript应用程序。这是我喜欢使用figwheel-main的原因(不能代表其他人)。figwheel-main可以正常工作,使用起来快速,我可以编写ClojureScript,不需要处理npm的依赖关系,也不需要理解JavaScript及其生态系统。

如果您不知道npm包的详细信息以及它们的功能,那么调试系统似乎要困难得多。因此,在使用shadow-cljs时,至少应该有一些JavaScript和NPM的经验。

figwheel-main也和我使用的编辑器兼容。我看到很多人在slack上提问如何运行shadow-cljs,我想这可能是因为他们没有仔细阅读shadow-cljs指南应该被认真遵循。

Shadow-cljs在简化与npm及其整个生态系统的工作方面做得非常出色。

然而,完全不使用npm和JavaScript也能使事情变得更简单。
by
谢谢,约翰!这是一个很好的答案和后续,对我也很有帮助,因为我又开始尝试使用 cljs 了。在之前玩过 shadow-cljs 之后,我这次决定使用 figwheel-main,并尽可能避免使用 npm/js ——你的评论真的让我更加坚定了在这片领域再次探索的想法(我们上一次认真探索 cljs 是在 2013/2014 年,那完全是另一回事!)
+4

我长期以来一直在使用 figwheel-main 进行 React Native 开发(大约从 2016 年开始),我对它通常非常满意。

截至去年,npm 包支持也真的非常完善。您可以使用 "yarn add @tensorflow/tfjs"。然后简单地添加一个 require,例如

["@tensorflow/tfjs" :as tfjs]

... 然后,一切都会正常工作(至少在 React Native + CLJS 上是如此。我最近没有做过基于浏览器的 CLJS 项目,但我猜想应该是相同的。)

React Native 使用其自己的打包器(称为 metro),您必须使用它,因此在使用 React Native 时,您无法避免使用额外工具。在这方面,我想给您一个小贴士:如果您要使用 JavaScript 包,请使用 "yarn" 而不是 "npm"。这应该适用于浏览器和 React Native 开发。多年来,我使用 yarn 的经验质量更高。我经历过很多半天的时间,直到通过一些神秘的谷歌搜索才意识到只是一个奇怪的 npm 专用问题。由于 yarn,我没有遇到任何重大问题。

我本人没有使用过 shadow-cljs,但 thheller 在 Clojure 社区中始终是一个非常有帮助且知识渊博的参与者。因此,我假设这个工具的质量也非常出色,我还听说使用 shadow-cljs 的人也有很好的评价。

0

嗨!这是一个非常好的问题。你能提供一些额外的信息吗?具体来说

  • 你打算使用 ClojureScript 做什么工作?
  • 你有什么 ClojureScript 的经验?
  • 你有什么前端 Web 开发的经验?
by
嗨,

- 我正想构建实时SPA仪表板,随数据变化更新UI。数据驱动仪表板
- 我是一个Clojurescript新手,因为其数据驱动方法出色且源代码更少,因此几个月前才开始学习。
- 我已经从事基于react+redux的web应用开发6个月了。

希望这回答了所有你的问题。如有需要更多信息,请随时联系。
...