将Reason源文件编译到与源文件相同的目录中

时间:2017-10-15 17:35:54

标签: reason bucklescript bsconfig

我正在编写节点应用程序,我想在其中混合Reason和原始JavaScript。

bucklescript文档中的

This section描述了它

  

当用户拥有现有的JS项目时,输出JS是有意义的   文件与vanilla JS在同一目录中,架构添加了一个密钥   调用in-source,以便在ML文件旁边生成JS文件。

我认为这是在bsconfig.json文件中?但是钥匙应该有什么价值? The schema documentation未提及此选项。

我正在运行Bucklescript版本1.9.1 - 所以功能应该可用(从1.9.0开始提供)。

如何使用in-source选项?

我的bsconfig.json文件如下所示:

{
  "name": "re-server",
  "version": "0.1.0",
  "bsc-flags": ["-bs-super-errors"],
  "in-source": true,  // I tried adding the key here
  "sources": [{
    "dir": "src",
    "in-source": true  // I tried adding the key here
  }
  ],
  "bs-dependencies" : [
    "bs-express"
  ]
}

1 个答案:

答案 0 :(得分:4)

应该在“package-specs”部分:

var outputJson = fs.readFileSync("outputV3.JSON");
outputJson = JSON.parse(outputJson);

(function () {
  for (let i = 0; i < outputJson.objects.length; i++) {
    let postId = outputJson.objects[i].id.toString();
    let newSlug = outputJson.objects[i].slug.replace("blog/", "");
    let urlToPut = "https://api.hubapi.com/content/api/v2/blog-posts?limit=1000&hapikey=" + process.env.HAPIKEY;

    urlToPut = urlToPut.replace("blogPostId", postId);

    let put_data = JSON.stringify({
      "slug": newSlug
    });

    put_data.put(urlToPut);
  }
});

所以你的{ ... "package-specs" : [{ "module": ..., "in-source": true }] } 应该是这样的:

bsconfig.json