什么是 polyfill-service-express?
polyfill-service-express 是一个 Node.js 模块,它提供了一个中间件,可以将浏览器缺失的 ES6+ 特性转化为等效的 ES5 代码,并将其传递到前端。这个模块使用的是 polyfill-service 这个 npm 包,并将其包装成一个 Express 中间件,方便 Node.js 开发者使用。
如何安装和使用?
- 在你的项目中安装
polyfill-service-express
:
npm install --save polyfill-service-express
- 在你的 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
选项:
app.use(polyfill({ features: { 'Promise': { flags: ['always', 'gated'], }, 'Object.assign': { flags: ['always', 'gated'], }, }, version: '3.51.1', }));
在这个例子中,我们指定了版本为 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