Files
guangfei.zhao a3ff72e575 feat(iframe): add iframe bridge for ragflow integration
- Implement Penpal-based iframe communication bridge between host and child apps
- Add route handling for ragflow integration with '/route-ragflow' prefix
- Update navigation hooks to support embedded mode via iframe bridge
- Configure build and dependencies for new iframe-bridge package
- Adjust nginx config for proper SPA routing in subpath deployments
2025-11-10 16:11:21 +08:00

73 lines
2.1 KiB
TypeScript

import path from 'path';
import TerserPlugin from 'terser-webpack-plugin';
import { defineConfig } from 'umi';
import { appName } from './src/conf.json';
import routes from './src/routes';
const ESLintPlugin = require('eslint-webpack-plugin');
const RAGFLOW_BASE = process.env.RAGFLOW_BASE || '/';
export default defineConfig({
title: appName,
outputPath: 'dist',
alias: { '@parent': path.resolve(__dirname, '../') },
npmClient: 'pnpm',
mfsu: false,
base: RAGFLOW_BASE,
routes,
publicPath: RAGFLOW_BASE,
esbuildMinifyIIFE: true,
hash: true,
favicons: ['/logo.svg'],
headScripts: [{ src: '/iconfont.js', defer: true }],
clickToComponent: {},
history: {
type: 'browser',
},
plugins: [
'@react-dev-inspector/umi4-plugin',
],
jsMinifier: 'none', // Fixed the issue that the page displayed an error after packaging lexical with terser
lessLoader: {
modifyVars: {
hack: `true; @import "~@/less/index.less";`,
},
},
// devtool: 'source-map',
// Speed up dev startup by using cheaper source maps
devtool: process.env.NODE_ENV === 'development'
? 'eval-cheap-module-source-map'
: 'source-map',
copy: [
{ from: 'src/conf.json', to: 'dist/conf.json' },
{ from: 'node_modules/monaco-editor/min/vs/', to: 'dist/vs/' },
],
proxy: [
// {
// context: ['/api', '/v1'],
// target: 'http://154.9.253.114:9380',
// target: 'http://150.158.121.95',
// changeOrigin: true,
// ws: true,
// logger: console,
// pathRewrite: { '^/v1': '/v1' },
// },
],
chainWebpack(memo, args) {
memo.module.rule('markdown').test(/\.md$/).type('asset/source');
memo.optimization.minimizer('terser').use(TerserPlugin);
// Fixed the issue that the page displayed an error after packaging lexical with terser
// memo.plugin('eslint').use(ESLintPlugin, [
// {
// extensions: ['js', 'ts', 'tsx'],
// failOnError: true,
// exclude: ['**/node_modules/**', '**/mfsu**', '**/mfsu-virtual-entry**'],
// files: ['src/**/*.{js,ts,tsx}'],
// },
// ]);
return memo;
},
});