@tb-app/polyfill

0.1.1 • Public • Published

@tb-app/polyfill

简介

小程序引擎中禁止访问 globalThis、global ,因此无法直接使用 babel-polyfill(babel-polyfill 访问了 global 对象)。

开发者使用新的 JavaScript 特性时,需要关心新特性的兼容性。如果必须使用新特性,需要自己提供内置对象的 polyfill。

Polyfill :用于实现浏览器或其他 JavaScript 引擎不支持的原生 API 的代码

为了能够在小程序中使用最新版本的特性,我从 core-js 源码中拷贝了一些目前小程序中可能存在兼容性问题的 API 的 polyfill 实现。

我对这些代码进行了修改,使之能够兼容小程序引擎。并且,删除了这些 polyfill 中对 ie8 或 es3 的兼容代码。修改过的代码,仍然能够百分百通过 core-js 的单元测试(我对 core-js 的单元测试也拷贝了一份)。

为什么自己不实现 polyfill?

要实现符合 ESMA 规范 的 polyfill,需要注重很多细节,要很熟悉 ESMA 规范,实现难度比较大。因此,我选择了十分成熟的 库, core-js。

小程序支持哪些新的特性

小程序对 ES6 扩展内置对象支持情况

ios8 已经不需要考虑了,因为手机端千牛要求的最低版本是 Ios9.因此,表中所列出的 API, 你都可以直接使用(Reflect,Proxy 还需要小心使用)。

安装

npm i @tb-app/polyfill --save

使用

import '@tb-app/polyfill';

注意:一定要在 app.js 的最顶层中 引入 @tb-app/polyfill

引入 @tb-app/polyfill 后,如果用户的小程序引擎中没有对应的 api, 会自动提供 polyfill 版本。

目前提供了以下 API 的 polyfill

Package Sidebar

Install

npm i @tb-app/polyfill

Weekly Downloads

0

Version

0.1.1

License

MIT

Unpacked Size

18.2 kB

Total Files

4

Last publish

Collaborators

  • noshower