【问题标题】:How to use Flatbuffers with JavaScript in the browser?如何在浏览器中使用带有 JavaScript 的 Flatbuffers?
【发布时间】:2021-09-05 15:49:11
【问题描述】:

已放弃对 Flatbuffers 的纯 JavaScript 支持,项目网站告诉您使用来自 TypeScript 的 transpile。

这是我尝试过的:

  1. 写一个 Flatbuffers 文件website.fbs
  2. 运行flatc --ts website.fbs 接收website.ts
  3. 运行tsc website.ts 接收website.js
  4. 运行browserify website.js -o website.browser.js 以接收我可以包含在<script src="website.browser.js"></script> 中的文件。

但是console.log(Website) 告诉我没有Website 对象。

在浏览器中使用带有 JavaScript 的 Flatbuffers 的正确路径是什么?

【问题讨论】:

    标签: javascript browserify flatbuffers


    【解决方案1】:

    问题是browserify默认不导出到全局命名空间(窗口)。通过向 browserify 提供 -s 参数,您可以将其导出到全局符号:

    浏览 website.js -o website.browser.js -s website

    之后,您应该能够使用旧的直接到 js 代码生成器的 API 找到具有相同 API 的 window.website。

    或者,在我看来,更好的选择是使用更现代的捆绑器(Rollup、Parcel、esbuild、Webpack 等),并在一个步骤中将生成的 ts(或 js)与您的应用程序捆绑在一起,这样您根本不需要使用全局命名空间。这也将允许更高效和更小的代码、更好的 IDE 支持以及可能的其他一些好处。

    【讨论】:

      猜你喜欢
      • 2020-10-18
      • 1970-01-01
      • 2020-07-01
      • 2012-02-27
      • 2010-12-27
      • 2014-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多