UNPKG

@mhy/config

Version:

> This documentation is not complete. It's in progress and it's a BETA version. Use the tool at your own risk.

47 lines (34 loc) 1.1 kB
"use strict"; const fs = require('fs'); const path = require('path'); const WebpackManifestPlugin = require('webpack-manifest-plugin'); const WebpackPwaManifestPlugin = require('webpack-pwa-manifest'); const { GenerateSW, InjectManifest } = require('workbox-webpack-plugin'); const { moduleHome } = require('../../'); const manifest = require('../../manifest'); const defaultSwPath = path.resolve(moduleHome, '../../../../', 'src/sw.js'); const projectSwPath = path.resolve(process.cwd(), 'src/sw.js'); const swSrc = fs.existsSync(projectSwPath) ? projectSwPath : defaultSwPath; module.exports.default = (plugins = []) => { manifest.icons.map(icon => { const inCwdPath = path.resolve(process.cwd(), icon.src); if (fs.existsSync(inCwdPath)) { icon.src = inCwdPath; } return icon; }); plugins = plugins.concat(new GenerateSW()); if (fs.existsSync(swSrc)) { new InjectManifest({ swSrc }); } return plugins.concat([new WebpackPwaManifestPlugin(manifest), new WebpackManifestPlugin({ fileName: './manifest.webpack.json' })]); };