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

欢迎!请访问 关于 页面以获取更多关于此如何运作的信息。

+8
ClojureScript

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

  1. fighweel
  2. shadowcljs

我是一个新手,想一直使用一个。请您就每个软件的优缺点提供帮助,以便我可以做出明智的决定。祝您有个美好的一天

3 个答案

+5

被选中
 
最佳答案

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

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

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

Figwheel 相比 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支持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"选项是用于采用npm包与figwheel-main一起使用。我在原始帖子中没有详细介绍这一点。

我还没有需要使用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

我长期以来一直在使用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开发经验?
你好,





...