think/packages/client/copy-diagram-resources.js

84 lines
1.8 KiB
TypeScript

/**
* 将流程图编辑器所需的资源拷贝到 .next 目录中,配合 nginx 运行
*/
const fs = require('fs-extra');
const { getConfig } = require('@think/config');
const config = getConfig();
const buildManifestJson = () => {
return JSON.stringify({
name: config.client.seoAppName,
short_name: config.client.seoAppName,
display: 'standalone',
start_url: '/',
theme_color: '#ffffff',
background_color: '#ffffff',
icons: [
{
src: '/icon72.png',
sizes: '72x72',
type: 'image/png',
},
{
src: '/icon96.png',
sizes: '96x96',
type: 'image/png',
},
{
src: '/icon120.png',
sizes: '120x120',
type: 'image/png',
},
{
src: '/icon128.png',
sizes: '128x128',
type: 'image/png',
},
{
src: '/icon144.png',
sizes: '144x144',
type: 'image/png',
},
{
src: '/icon152.png',
sizes: '152x152',
type: 'image/png',
},
{
src: '/icon180.png',
sizes: '180x180',
type: 'image/png',
},
{
src: '/icon192.png',
sizes: '192x192',
type: 'image/png',
},
{
src: '/icon384.png',
sizes: '384x384',
type: 'image/png',
},
{
src: '/icon512.png',
sizes: '512x512',
type: 'image/png',
},
{
src: '/maskable.png',
sizes: '192x192',
type: 'image/png',
purpose: 'maskable',
},
],
});
};
fs.copySync('./public', './.next', {
filter: (src) => {
// 生产环境使用 diagram.min.js
return !/diagram.js$/.test(src);
},
});
fs.outputFileSync('./.next/manifest.json', buildManifestJson());