问题标签 [bucklescript]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
682 浏览

javascript - 如何在 ReasonML 中进行 protobuf?

我有一组 protobuf 类型,我想为序列化生成 reasonML 代码。到目前为止,我发现 ocaml-protoc 无法在我的系统上安装。使用码头工人,

然后运行命令:

我已经能够编译一组 ml/mli 文件。但是,这些文件依赖于一些已卸载的库,例如Pbrt. 摘抄:

--------------^

有没有一种干净的方法可以在不安装任何本机库的情况下解决这个问题?必须提供任何包含的源代码,以便 bucklescript 能够将其编译成 JS。

想到的解决方案是生成通用依赖项(例如 Pbrt)以及 proto 实现。有没有人找到解决这个问题的方法?

0 投票
1 回答
386 浏览

webpack - 使用 bsb react 模板“您可能需要适当的加载程序来处理此文件类型”

我有一个文件View.js,其中包含一个无状态组件:

然后我写了一个包装器ViewWrapper.re,与reasonml进行互操作

然后将包装器添加到index.re

编译器抱怨:

我究竟做错了什么?

更新。我创建了我的原因项目

命令。
我将 View.js 添加到项目中: 在此处输入图像描述

bsconfig.js外观如下:

我错过了什么吗?

0 投票
1 回答
72 浏览

reason - Reason 中的 .() 和 .{} 有什么区别?

我试图弄清楚为什么使用Js.Promise示例

而使用Json.Decode示例

据我了解,.()打开了Js.Promise这样我就可以调用其中的任何函数Js.Promise而无需Js.Promise作为模块的前缀。

但是有什么作用.{}呢?

0 投票
1 回答
752 浏览

json - 解码 JSON 对象数组

假设我有这个 JSON 对象数组:

如何在 ReasonML 中对此进行解码?

0 投票
1 回答
179 浏览

normalization - ReasonML 的 Normalizr

我知道 ReasonML 是一种新语言,所以工具会有点落后。但我想知道是否有一个 Bucklescript 或 ReasonML 工具可以作为数据的 Normalizr 以进行原因反应。我知道我可以直接进行绑定并将它们放入Normalizr,但这感觉不对,因为感觉它部分违背了使用强类型语言的目的。

我还尝试通过将前端“模型”格式化为“字段”列表来创建 normalizr,但这种方法也感觉不对,因为它需要大量样板将我漂亮的干净记录转换为奇怪的格式化列表数据结构。

好奇是否有人在大型原因ML 或 bucklescript 应用程序(如果存在)中遇到过这种情况。

谢谢

0 投票
1 回答
265 浏览

ocaml - Ocaml:在参数类型中使用记录和变体

作为 Ocaml 的新手,我正在使用类型并尝试了解变体是如何工作的。

这是示例:

我不是试图找到最好的解决方案(比如模式匹配),只是理解为什么 ocaml 不能在 get_bar_3 中推断出组件是 Str | 飞度。

也许这种把戏是可能的?

谢谢

(我正在使用扣脚本)

编辑 :

意识到我的问题与设计有关。我可以使用这样的东西:

0 投票
0 回答
436 浏览

reason - 编译时出现错误“找不到变体构造函数”

我正在尝试在 ReasonReact 项目中使用可排序列表组件react-sortable-hoc) 。但是我遇到了一个错误,我花了几个小时试图弄清楚。

我遵循的步骤:

  • 使@bs 为sortableContainer()模块sortableElement()绑定react-sortable-hoc
  • 伪造这两个函数返回的 reactClass 并将其放在文件SortableContainer.jsSortableElement.js
  • 制作了另一个名为 Todolist 的 React 组件,它使用组件 SortableContainer,而 SortableContainer 使用组件 SortableElement。

代码片段

当我编译这段代码时,我得到了这个错误。

这段代码有什么问题?

0 投票
3 回答
216 浏览

jestjs - Reason/Bucklescript + bs-jest:如何在 __tests__ 文件夹之外编译带有 *.test.re 模式的文件?

背景:

我目前正在使用 bs-jest 进行单元测试。另外,我使用的是 bsb init 项目,这意味着我首先使用 Reason/Bucklescript + 编译文件,然后使用 Webpack 运行编译文件。

默认情况下,Jest 会选择其中包含单词 test 的文件,例如 component.test.js,默认情况下会被 Jest 选择。

Bs-jest 将默认工作,文件被放在 __tests__目录中。但是,我的规范文件遵循*.test.re模式,放在我的组件文件夹中,即放在其他文件夹中,__tests__不会编译为适当的*test.js文件。

客观的:

编译:

至:

然后让 Jest 像默认情况下一样运行和工作。

任何帮助都非常感谢。谢谢你。

0 投票
2 回答
95 浏览

ocaml - 如何在两个事件处理程序之间共享数据?

我正在玩理性和 buckelscript,作为练习,我为http.gethttps://nodejs.org/docs/latest-v8.x/api/http.html#http_http_get_options_callback)创建了绑定

使用这个绑定我想编写这个简单的代码片段

我试图这样使用的原因

results是不可变的,新的绑定将无法从end回调中访问。你知道如何解决这个问题吗?

0 投票
1 回答
149 浏览

functional-programming - 在 Reason 中清除自己的间隔

在 Reason 中,当满足某些条件时,让间隔自动清除的最优雅的方式是什么?在 JavaScript 中,我可以这样做:

在 Reason 中,到目前为止我想出的最好的是:

有没有办法避免使用 a ref