请在2024 Year of Clojure 调查!分享您的想法。

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

+8
ClojureScript

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

  1. fighweel
  2. shadowcljs

我是一名新手,想坚持使用一个。请就每个选项的优缺点给我提供帮助,以便我能做出明智的决定。祝愿您有个美好的一天。

3 个答案

+5
 
最佳答案

Figwheel-main 和 Shadow-cljs 都是工作起来非常出色的项目。

一般来说,使用哪个工具取决于你希望如何构建应用。

如果你是纯 ClojureScript 项目或包含一些 JavaScript 库的 ClojureScript 项目(作为捆绑包或 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依然是一个更好的选择 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也能简化事物。
谢谢,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 开发的经验?
你好,

- 我正在寻找构建实时SPA仪表盘,随着数据变化更新UI。数据驱动的仪表盘
- 我是一个ClojureScript新手,由于其数据驱动方法强大和代码量减少,两个月前开始学习了。
- 我过去6个月一直在开发基于React + Redux的Web应用。

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