在试图加入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.15
或0.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"
}
带有导入本机库的功能
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
查看本机代码的动机来自于查看名为Elm-D3的库,该库使用本机类型。基本上,他创建了一个映射到d3js库的D3
类型。一些问题:
但是,目前这个话题似乎有一个活跃的issue。
答案 0 :(得分:0)
部分Native模块在JS中实现。
当您构建使用本机库的应用程序时,该JS代码将被转移到elm-make
创建的包中。