# PWA Objectifs: - Permettre d'installer l'app Dior My Account sur son device (ou Dior ?) - Permettre une expérience light "hors connexion" de myAccount - Permettre le push de notifs lors du trigger d'un webhook lié aux orders ## 1 - Installable - récupérer 2 icones - Creer un manifest et faire le settings d'activation instantané des sw Static Host URL en local ? ## 2 - Offline - Quelle expérience en offline ? - Récolter toutes les urls à précharger ## 3 - Notifs Pusher ? ### Expérimentations - Utiliser next-pwa pour activer les PWA sur Next.js et simplifier l'import du manifest ```js if (process.env.NODE_ENV === 'development') { require('dotenv-flow').config({ node_env: process.argv[2], }); } const withPWA = require('next-pwa')({ dest: 'public', register: true, skipWaiting: true, }); const defaultConfig = require('./config/defaults'); const customWebpackConfig = require('./webpack.config'); const isDev = process.env.NODE_ENV === 'development'; const getAssetConfiguration = () => ({ assetPrefix: '/couture-my-account-assets', rewrites() { return [ { source: '/couture-my-account-assets/_next/:path*', destination: '/_next/:path*', }, ]; }, }); const nextConfig = { compress: false, poweredByHeader: false, ...getAssetConfiguration(), publicRuntimeConfig: Object.entries(defaultConfig).reduce( (config, [key, defaultValue]) => { config[key] = process.env[key] || defaultValue; return config; }, {}, ), env: { IS_DEV: isDev, }, webpack: customWebpackConfig, }; let config; if (process.env.ANALYZE === 'true') { const withBundleAnalyzer = require('@next/bundle-analyzer')({ enabled: true, }); config = withBundleAnalyzer(nextConfig); } else { config = nextConfig; } module.exports = withPWA(config); ```