npm 包 polyfill-service-express 使用教程

阅读时长 5 分钟读完

什么是 polyfill-service-express?

polyfill-service-express 是一个 Node.js 模块,它提供了一个中间件,可以将浏览器缺失的 ES6+ 特性转化为等效的 ES5 代码,并将其传递到前端。这个模块使用的是 polyfill-service 这个 npm 包,并将其包装成一个 Express 中间件,方便 Node.js 开发者使用。

如何安装和使用?

  1. 在你的项目中安装 polyfill-service-express
  1. 在你的 Express 应用程序中引入模块并将它作为中间件:
-- -------------------- ---- -------
----- ------- - -------------------
----- -------- - ------------------------------------

----- --- - ----------

------------------
  --------- -
    ---------- - ------ ---------- --------- --
    ---------------- - ------ ---------- --------- --
  --
----

-- ---- ----- ---------- --- ------

---------------- -- -- -
  ---------------------- -- ---- -------
---

在这个例子中,我们启用了 Promise 和 Object.assign 两个 ES6+ 特性的 polyfill,并在其中使用了两个 flags: always 和 gated。always 的意思是无论浏览器是否支持这个特性,都会被 polyfill,而 gated 则是只有在特定条件下才会被 polyfill。关于 flags 的更多信息,请参阅 polyfill-service 文档

更多示例代码

手动引入

你也可以在客户端手动引入 polyfill:

-- -------------------- ---- -------
--------- -----
------
------
-------
------
  ------- ---------------------------------
  ------- ------------------------
-------
-------

这里的 polyfill.min.js 是从服务器端生成的文件,其中包含了所有需要的 polyfill 代码。

配置 polyfill 版本

如果你想要使用特定版本的 polyfill-chat,则可以在中间件中设置 version 选项:

在这个例子中,我们指定了版本为 3.51.1。如果没有指定版本,则默认使用最新版本。

把 polyfill 资源缓存

polyfill-service-express 使用缓存来避免重复地生成同样的 polyfill 资源。你可以使用任意一个 cache-manager 支持的缓存,或者自定义一个缓存。

-- -------------------- ---- -------
----- ------------ - -------------------------

----- ----------- - ----------------------
  ------ ---------
  ---- ---- -- -------
  ---- --- -- ---
---

------------------
  --------- -
    ---------- - ------ ---------- --------- --
    ---------------- - ------ ---------- --------- --
  --
  -------- ---------

  ------ ------------ -- ------
----

在这个例子中,我们使用了一个内存缓存,缓存时限为十分钟,最多缓存一百个条目。你可以修改这些选项来满足你的需求,也可以使用其他缓存。更多关于 cache-manager 缓存选项的信息,请参阅其 文档

结论

使用 polyfill-service-express,你可以轻松地在 Express 中使用 polyfill-service,快速地将浏览器缺失的 ES6+ 特性转换为等效的 ES5 代码,并为你的网站增加跨浏览器支持。如果你的应用程序需要跨浏览器支持,则可以考虑使用这个模块作为你的解决方案。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005603a81e8991b448de67b

纠错
反馈