gpt4 book ai didi

d3.js - `Import Native` 在 Elm 中如何工作

转载 作者:行者123 更新时间:2023-12-05 07:48:45 26 4
gpt4 key购买 nike

在尝试加入的旧库中 Elm and D3我注意到某些语句导入了 native JavaScript...

import Native.D3.Render
import Native.D3.Selection
import Native.D3.Transition

我们可以只用 elm-make 编译原生 JavaScript ...?我知道我们不鼓励编写自己的 JavaScript(因为它不是类型安全的),但有时这是必要的。

elm-package.json显示这是用 0.150.16 编写的,因此它不会在新的语法更改下编译。


这是一个elm-package.json

{
"version": "1.0.0",
"summary": "helpful summary of your project, less than 80 characters",
"repository": "https://github.com/user/project.git",
"license": "BSD3",
"source-directories": [
"."
],
"native-modules": true,
"exposed-modules": [],
"dependencies": {
"elm-lang/core": "4.0.1 <= v < 5.0.0",
"elm-lang/html": "1.0.0 <= v < 2.0.0",
"elm-lang/svg": "1.0.0 <= v < 2.0.0",
"evancz/elm-graphics": "1.0.0 <= v < 2.0.0"
},
"elm-version": "0.17.0 <= v < 0.18.0"
}

具有导入 native 库的功能

import Native.Test
import Html exposing (text)

main = text "Hello, World!"

它编译了

john@miCasa:~/Documents/Elm$ elm-make test-native.elm
Success! Compiled 1 module.
Successfully generated index.html

研究 native 代码的动机来自于查看一个名为 Elm-D3 的库它使用原生类型。本质上,他创建了一个映射到 d3js 的类型 D3图书馆。几个问题:

  • 这个库将 Elm 0.16 绑定(bind)到 D3 3.0
  • Elm 现在是 0.17,D3JS 是 4.0

但是,似乎有一个活跃的issue目前就这个话题。

最佳答案

部分Native模块是用JS实现的。

当您构建一个使用 native 库的应用程序时,该 JS 代码将被传输到 elm-make 创建的包中。

这里是 a link to an article about writing a Native function .

关于d3.js - `Import Native` 在 Elm 中如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38257504/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com