2024年度Clojure调查 中分享你的想法!

欢迎!请查看关于页面以获取更多关于这个平台的信息。

+8
ClojureScript

作为一名ClojureScript开发者,我想了解哪个更好。

  1. figwheel
  2. shadowcljs

我是一个新手,想坚持一个。请帮助我了解每个的优缺点,以便我能做出明智的决定。祝您有一个美好的一天

3 个答案

+5

被选中
 
最佳答案

Figwheel-main 和 shadow-cljs 都是优秀的项目。

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

如果你是纯粹的ClojureScript项目或与一些JavaScript库(如捆绑或cljsjs)的ClojureScript,请使用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项目中正常工作。

请注意,figwheel确实支持npm https://figwheel.org/docs/npm.html - 尽管我没有亲自尝试过使用它。

托马斯·赫勒在其博客中讨论了他个人认为shadow仍然是更好选项的原因 https://code.thheller.com/blog/shadow-cljs/2020/05/08/how-about-webpack-now.html - 但我想听听那些选择figwheel+npm(例如dnolen?mfikes?)而非shadow的人的看法。
: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也会使事物变得简单。
谢谢,John!这是一个非常好的回答及后续跟进,这对我帮助很大,因为我又开始尝试使用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社区中的一个超级有用和知识渊博的参与者。所以我推测工具的质量也很高,我 heard 来自使用shadow-cljs的人的好评。

0

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

  • 你打算用ClojureScript做什么工作?
  • 你对ClojureScript有什么经验?
  • 您在前端Web开发方面有哪些经验?
你好,

- 我正在尝试构建实时SPA仪表盘,UI随数据变化而更新。数据驱动型仪表盘
- 我是个Clojurescript初学者,因为Clojurescript在数据驱动方法上非常出色以及代码量较少,所以几个月前开始学习。
- 我已经做了6个月的基于react+redux的Web应用程序。

希望这能回答你的所有问题。若需要进一步或详细的信息,请随时联系。
...