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

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

+8
ClojureScript

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

  1. fighweel
  2. shadowcljs

我是个新手,想要坚持其中一个。劳烦帮忙分别罗列优缺点,让我能做出明智的选择。祝您过得愉快。

3 个回答

+5

被评为最佳答案
 
最佳答案

Figwheel 和 shadow-cljs 都是出色的项目。

一般来说,选择哪个工具取决于您如何构建应用。

对于纯 ClojureScript 项目或包含 JavaScript 库(作为捆绑或 cljsjs)的 ClojureScript,请使用 Figwheel。

与 shadow-cljs 相比,Figwheel 的组件较少,因此学习起来非常简单,易于操作。

如果您基于 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支持npm https://figwheel.org/docs/npm.html —— 虽然我自己还没有尝试使用它。

Thomas Heller在其博文中谈到了为什么在他看来Shadow仍然是一个更好的选择 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
谢谢,John!这是一个非常好的回答和跟进,对你真的很有帮助,因为我又开始玩cljs了。以前我也玩过shadow-cljs,这次我决定用figwheel-main,尽最大可能避免使用npm/js。你的评论确实加强了我在这方面的感受(我们最后一次认真探索cljs是在2013/2014年,那时候完全是另一回事!)
+4
by

我已经长期使用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
by
...