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

欢迎!请参见关于页面以获取更多关于如何使用本站的信息。

+8
ClojureScript

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

  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项目中正常工作。

请注意,Figwheel支持npm https://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的人的看法。
: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

我已经很长时间(自2016年左右)在使用figwheel-main进行React Native开发,总体来说我对它非常满意。

截至去年,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开发有什么经验?
您好,

- 我想构建实时SPA仪表盘,随着数据变化更新UI。数据驱动的仪表盘
- 我是一个ClojureScript新手,仅因其在数据驱动方法和减少源代码上的卓越性而开始使用,才几个月的时间。
- 过去6个月我一直在做基于React+Redux的Web应用。

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