feat: 添加评论、反应、离线编辑及主题定制功能
All checks were successful
test/timeline-frontend/pipeline/head This commit looks good
All checks were successful
test/timeline-frontend/pipeline/head This commit looks good
- 实现评论系统,包括评论输入、列表展示和集成指南 - 添加反应功能组件(ReactionBar、ReactionButton、ReactionPicker) - 实现离线编辑支持,包括同步状态管理和冲突解决 - 添加主题定制功能,支持多种配色方案和主题预览 - 新增多视图布局选项(时间线、分组、砌体视图) - 实现个人资料编辑器,支持头像、简介和自定义字段编辑 - 添加统计页面,展示存储使用情况和上传趋势 - 新增相册管理功能,支持相册创建、编辑和照片管理 - 实现响应式设计和加载骨架屏组件 - 扩展国际化支持,新增孟加拉语、波斯语、印尼语、日语、葡萄牙语等语言 - 添加错误边界组件和离线指示器 - 更新配置文件、路由和依赖项 - 新增完整的文档、测试用例和集成指南
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// https://umijs.org/config/
|
||||
import { defineConfig } from '@umijs/max';
|
||||
import { defineConfig } from 'umi';
|
||||
import { join } from 'path';
|
||||
import defaultSettings from './defaultSettings';
|
||||
import proxy from './proxy';
|
||||
@@ -155,4 +155,61 @@ export default defineConfig({
|
||||
|
||||
esbuildMinifyIIFE: true,
|
||||
requestRecord: {},
|
||||
|
||||
/**
|
||||
* @name Webpack configuration
|
||||
* @description Custom webpack configuration for code splitting and optimization
|
||||
*/
|
||||
chainWebpack: (config: any) => {
|
||||
// Ignore Windows system files to prevent Watchpack errors
|
||||
config.watchOptions({
|
||||
ignored: [
|
||||
'**/node_modules',
|
||||
'**/.git',
|
||||
'**/C:/DumpStack.log.tmp',
|
||||
'**/C:/pagefile.sys',
|
||||
'**/C:/swapfile.sys',
|
||||
'**/C:/System Volume Information',
|
||||
'**/C:/$*', // Ignore all system files starting with $
|
||||
],
|
||||
});
|
||||
|
||||
// Split large vendor libraries into separate chunks
|
||||
config.optimization.splitChunks({
|
||||
chunks: 'all',
|
||||
cacheGroups: {
|
||||
// Ant Design and related libraries
|
||||
antd: {
|
||||
name: 'antd',
|
||||
test: /[\\/]node_modules[\\/](@ant-design|antd|@antv|rc-)/,
|
||||
priority: 20,
|
||||
},
|
||||
// React and related libraries
|
||||
react: {
|
||||
name: 'react',
|
||||
test: /[\\/]node_modules[\\/](react|react-dom|react-router|react-router-dom)/,
|
||||
priority: 20,
|
||||
},
|
||||
// Other vendor libraries
|
||||
vendors: {
|
||||
name: 'vendors',
|
||||
test: /[\\/]node_modules[\\/]/,
|
||||
priority: 10,
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
// Optimize images
|
||||
config.module
|
||||
.rule('images')
|
||||
.test(/\.(png|jpe?g|gif|webp|svg)$/)
|
||||
.use('url-loader')
|
||||
.loader('url-loader')
|
||||
.options({
|
||||
limit: 8192, // Inline images smaller than 8KB
|
||||
name: 'static/images/[name].[hash:8].[ext]',
|
||||
});
|
||||
|
||||
return config;
|
||||
},
|
||||
});
|
||||
|
||||
@@ -84,6 +84,16 @@ export default [
|
||||
path: '/gallery',
|
||||
component: './gallery',
|
||||
},
|
||||
{
|
||||
name: 'collections',
|
||||
icon: 'appstore',
|
||||
path: '/collections',
|
||||
component: './collections',
|
||||
},
|
||||
{
|
||||
path: '/collections/:id',
|
||||
component: './collections/[id]',
|
||||
},
|
||||
{
|
||||
path: '/timeline/:id',
|
||||
component: './story/detail',
|
||||
|
||||
Reference in New Issue
Block a user