Благодарим за руководство, но ваша конфигурация не подходит для текущей версии cra. теперь Cra использует плагин workbox-webpack, но не SWPrecacheWebpackPlugin. И я думаю, что мы можем изменить конфигурацию по умолчанию workbox-webpack-plugin, чтобы настроить наш service-worker.js. Мы можем изменить конфигурацию в файле config-overrides.js на это:

const rewireTypescript = require('react-app-rewire-typescript');
const workboxPlugin = require('workbox-webpack-plugin')
const path = require('path')
module.exports = {
  webpack: function (config, env) {
    config = rewireTypescript(config, env);
    if (env === 'production') {
      const workboxConfigProd = {
      swSrc: path.join(__dirname, 'public', 'cus-service-  worker.js'),
    swDest: 'cus-service-worker.js',
    importWorkboxFrom: 'disabled'
  }
  config = removePreWorkboxWebpackPluginConfig(config)
  config.plugins.push(new  workboxPlugin.InjectManifest(workboxConfigProd))
  }
  return config
  }
}
// delete the default configuration of WorkboxWebpackPlugin
function removePreWorkboxWebpackPluginConfig (config) {
  const preWorkboxPluginIndex = config.plugins.findIndex(
  (element) => {return   Object.getPrototypeOf(element).constructor.name === 'GenerateSW'
  })
  if (preWorkboxPluginIndex !== -1) {
    config.plugins.splice(preWorkboxPluginIndex, 1)
  }
  return config
}