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

欢迎!有关如何使用本站的更多信息,请参阅 关于 页面。

+8 投票
ClojureScript

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

  1. fighweel
  2. shadowcljs

我是新手,想坚持使用一个。请就每个的优点和缺点帮助我,这样我可以做出明智的决定。祝你们有美好的一天

3 个答案

+5 投票

选择
 
最佳答案

Figwheel 主和 shadow-cljs 都是优秀的工作项目。

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

使用 Figwheel 主可以在纯粹 ClojureScript 项目或 ClojureScript 和一些 JavaScript 库(作为捆绑包或 cljsjs)中使用。

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

请注意,figwheel支持npmhttps://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的人的看法。
“:bundle”选项是用于与figwheel-main一起使用npm包。我在原文中并没有详细说明。

我并不需要使用npm来创建有趣的ClojureScript应用。这就是我主要使用figwheel-main的原因(我无法代表其他人)。figwheel-main贴合使用,使用快速,我可以编写ClojureScript,我无需处理npm的依赖,也不必理解JavaScript或其生态系统。

如果您不清楚npm包及其具体功能,调试系统似乎会更加困难。因此,至少拥有一些JavaScript和NPM的经验似乎在使用shadow-cljs时是必要条件。

figwheel-main还与我所使用的编辑器完美兼容。我看到很多人在slack上询问如何运行shadow-cljs,我认为这是因为他们没有仔细阅读shadow-cljs指南,而这本指南应该被仔细遵循。

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

然而,完全不用npm和javascript也会使事物变得更简单。
谢谢,约翰!这是一个很好的回答和后续跟进,它也真正帮助了我,因为自从我开始再次接触ClojureScript以来,而且在之前玩过shadow-cljs之后,我这次决定使用figwheel-main,并尽可能避免使用npm/js——你的评论确实巩固了我再次探索这一领域的感受(我们上次认真探讨ClojureScript是在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社区的超级 helpful 和 knowledgeable 参与者。所以我也假设这个工具的质量是卓越的,我也从使用shadow-cljs的人那里听到了很多好话。

0
...

嘿!这是一个很棒的问题。你能提供一些额外信息吗?具体来说

  • 你希望用ClojureScript做什么样的工作?
  • 你对ClojureScript的经验如何?
  • 你对前端Web开发的经验如何?
by
您好,

- 我正在寻找构建实时SPA仪表板,根据数据变化更新UI的数据驱动仪表板
- 我是一个ClojureScript新手,因为其对数据驱动方法的优势和减少的源代码量,几个月前才开始接触
- 我过去6个月一直在做基于react+redux的Web应用。

希望它回答了您所有问题。如有需要进一步或详细的信息,请随时联系
...