首页 > 解决方案 > 既然 @babel/polyfill 已被弃用,如何使用 cra-append-sw 构建?

问题描述

我正在尝试向 create-react-app 提供的开箱即用的 serviceworker 添加功能。值得庆幸的是,cra-append-sw 让我无需从 cra 中弹出即可做到这一点。

但是,在安装 cra-append-sw 时,npm 会警告我 @babel/polyfill@7.4.4 已被弃用(@babel/polyfill 被列为 cra-append-sw 依赖项):

As of Babel 7.4.0, this package has been deprecated in favor of directly including core-js/stable (to polyfill ECMAScript features) and regenerator-runtime/runtime (needed to use transpiled generator functions):

import "core-js/stable";
import "regenerator-runtime/runtime";

然后,当我尝试npm run build附加一个自定义服务工作者时,构建会吐出一条长长的错误消息,其顶部是:

ERROR in multi ./custom-sw.js
Module not found: Error: Can't resolve './custom-sw.js' in '/Users/michaelmersiades/workspace/vanilla-cra'
resolve './custom-sw.js' in '/Users/--/workspace/vanilla-cra'
  using description file: /Users/--/workspace/vanilla-cra/package.json (relative path: .)
    Field 'browser' doesn't contain a valid alias configuration

并且 custom-sw.js 没有出现在构建文件夹中。

这是可以修复的吗?如果是这样,怎么做?或者这对优秀的 ira-append-sw 人来说是个问题吗?

我提前感谢任何可以提供帮助的人。

标签: service-workercreate-react-appbabel-polyfill

解决方案


愚蠢的错误。custom-sw.js 文件位于 /src 中,但它需要位于 /(根文件夹)中。

将其移至/解决了问题。


推荐阅读