![](/img/trans.png)
[英]How can i enable service worker in dev mode in create-react-app?
[英]How can i exclude some urls from service worker with create-react-app?
我有使用create-react-app和service-worker生成的应用程序。
我检查了很多问题和文章,但仍然找不到可用的答案。
将urlBlockList之类的内容添加到create-react-app服务工作者的最佳实践是什么?
我认为react eject
不是最合适的解决方案
解决
我找到的最佳解决方案-使用https://github.com/liuderchi/sw-precache-cra并将不需要的URL添加到自定义sw-config
例:
// sw-config.js
module.exports = {
runtimeCaching: [
{
urlPattern: '/unwantedurl',
handler: 'networkFirst',
},
],
};
这是适用于CRA 3的解决方案:
yarn add react-app-rewired --save-dev
react-app-rewired
替换package.json
scripts
部分中的react-scripts
config-overrides.js
的文件。 在此文件中,您可以将条目添加到服务工作者配置。 例如: module.exports = function override(config, env) {
const swPrecacheConfig = config.plugins.find(
plugin => plugin.constructor.name === "GenerateSW"
);
// Prevent some URLs from being cached by the service worker
const blacklist = swPrecacheConfig.config.navigateFallbackBlacklist;
blacklist.push(/\/oauth2\/authorization\//);
blacklist.push(/\/login\/oauth2\//);
return config;
};
上面的配置从服务工作者处排除带有/oauth2/authorization/
和/login/oauth2/
url。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.