BSON是一种二进制数据格式,官方解释是一种二进制格式的JSON,在传输中由于数据被压缩,具有体积小,修改速度快等优势。故而得到一些应用和开发中的青睐,下面介绍一下如何在Cocos Creator里面引入BSON
BSON简单介绍
首先我们去官方网站,JSON and BSON 找到一些关于 JSON
和BSON
的介绍和对比:
JSON vs BSON
JSON | BSON | |
---|---|---|
Encoding | UTF-8 String | Binary |
Data Support | String, Boolean, Number, Array | String, Boolean, Number (Integer, Float, Long, Decimal128…), Array, Date, Raw Binary |
Readability | Human and Machine | Machine Only |
了解一些信息后 我们打开 BSON 官网
然后可以看到很多语言的支持情况,这里我们选择
- Node.js
- bson - BSON serialization and deserialization library used by the official MongoDB Node.js driver.
接下来是具体步骤:
步骤
全局变量模式&插件导入
下载编译js-bson
- 首先外面js-bson 到本地
编译项目,生成需要的类库,需要node 环境 和 tsc 环境
1
2npm install
npm run build
修改生成后的文件
- 首先我们找到
dist
文件夹 下的bson.bundle.js
然后 修改
原代码:
1 | var BSON = (function (exports) { |
修改后:
1 | window.bson = (function (exports) { |
- 然后我们找到根目录下生成的 bson.d.ts 声明文件
原代码:
1 | export declare class Binary { |
修改后:
1 | declare global { |
测试结果
修改完毕后 测试一下我们的结果:
1 | const doc = { long: bs.Long.fromNumber(100) }; |
结果如下
本方法适合 Cocos Creator 2.x
和 Cocos Creator 3.1.x
最后 项目源码 地址
ES6 模块方式 引入
官方类库下载后 根据提示运行命令:npm install 或 npm run build 生成的 dist 目录下有四个文件,分别是四种格式,首先我们查看 根目录下的 配置文件叫做rollup.config.js
,
1 | output: [ |
其中 format 这个属性 这里我们稍作知识拓展:
格式(format
-f
/--output.format
)
String
生成包的格式。 下列之一:
amd
– 异步模块定义,用于像RequireJS这样的模块加载器cjs
– CommonJS,适用于 Node 和 Browserify/Webpackesm
– 将软件包保存为 ES 模块文件,在现代浏览器中可以通过<script type=module>
标签引入iife
– 一个自动执行的功能,适合作为<script>
标签。(如果要为应用程序创建一个捆绑包,您可能想要使用它,因为它会使文件大小变小。)umd
– 通用模块定义,以amd
,cjs
和iife
为一体system
- SystemJS 加载器格式
看到这些 我们知道 dist 目录下 为我们生成了 四种不同环境下的文件,这里如果我们使用 ES6 模式就用 bson.esm.js 这个文件 记得 文件名字要重命名为 bson.js
1 | import {deserialize, Long, serialize} from "../libs/bson"; |
输出结果:
知识拓展
Cocos 引用第三方库的两种方式:
插件模式
- 用编辑器导出为插件
1 | XX.yy |
Import 引入引用
1 | import * as x from 'x' |
总结
目前还没有真正理解 Cocos Creator 关于第三方 node库的怎么最优雅的方式使用,后续工作中会再深入探索和研究,查漏补缺的学习,这次先做个简单的引入。
参考
--- 本文结束 The End ---