Se abandonó la compatibilidad con JavaScript puro para Flatbuffers, y el sitio web del proyecto le indica que use transpile de TypeScript.
Esto es lo que probé:
website.fbs .flatc --ts website.fbs para recibir website.ts .tsc website.ts para recibir website.js .browserify website.js -o website.browser.js para recibir un archivo que puedo incluir con <script src="website.browser.js"></script> . Pero console.log(Website) me dice que no hay ningún objeto de Website .
¿Cuál es la ruta correcta para usar Flatbuffers con JavaScript en el navegador?
El problema es que browserify no exporta al espacio de nombres global (ventana) de forma predeterminada. Al proporcionar el parámetro -s para browserify, puede hacer que se exporte a un símbolo global:
browserify sitio web.js -o sitio web.browser.js -s sitio web
Después de eso, debería poder encontrar window.website con la misma API que antes con el antiguo generador de código directo a js.
O, en mi opinión, la mejor opción es usar un paquete más moderno (Rollup, Parcel, esbuild, Webpack, etc.) y hacer que empaquete los ts (o js) generados junto con su aplicación en un solo paso para que pueda hacer no es necesario utilizar el espacio de nombres global en absoluto. Eso también permitiría un código más eficiente y pequeño, mejor soporte IDE y probablemente algunos otros beneficios.