mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-03-13 09:43:53 +08:00
#### PR Dependency Tree * **PR #14530** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Breaking Changes** * Webpack bundler support removed from the build system * Bundler selection parameter removed from build and development commands * **Refactor** * Build configuration consolidated to a single bundler approach * Webpack-specific build paths and workflows removed; development server simplified * **Chores** * Removed webpack-related dev dependencies and tooling * Updated package build scripts for a unified bundle command * **Dependencies** * Upgraded Sentry packages across frontend packages (react/electron/esbuild plugin) <!-- end of auto-generated comment: release notes by coderabbit.ai -->
79 lines
2.1 KiB
TypeScript
79 lines
2.1 KiB
TypeScript
import type { Configuration as RspackDevServerConfiguration } from '@rspack/dev-server';
|
|
|
|
export const RSPACK_SUPPORTED_PACKAGES = [
|
|
'@affine/admin',
|
|
'@affine/web',
|
|
'@affine/mobile',
|
|
'@affine/ios',
|
|
'@affine/android',
|
|
'@affine/electron-renderer',
|
|
'@affine/server',
|
|
'@affine/reader',
|
|
] as const;
|
|
|
|
const rspackSupportedPackageSet = new Set<string>(RSPACK_SUPPORTED_PACKAGES);
|
|
|
|
export function isRspackSupportedPackageName(name: string) {
|
|
return rspackSupportedPackageSet.has(name);
|
|
}
|
|
|
|
export function assertRspackSupportedPackageName(name: string) {
|
|
if (isRspackSupportedPackageName(name)) {
|
|
return;
|
|
}
|
|
|
|
throw new Error(
|
|
`Rspack bundling currently supports: ${Array.from(RSPACK_SUPPORTED_PACKAGES).join(', ')}. Unsupported package: ${name}.`
|
|
);
|
|
}
|
|
|
|
const IN_CI = !!process.env.CI;
|
|
const httpProxyMiddlewareLogLevel = IN_CI ? 'silent' : 'error';
|
|
|
|
export const DEFAULT_DEV_SERVER_CONFIG: RspackDevServerConfiguration = {
|
|
host: '0.0.0.0',
|
|
allowedHosts: 'all',
|
|
hot: false,
|
|
liveReload: true,
|
|
compress: !process.env.CI,
|
|
setupExitSignals: true,
|
|
client: {
|
|
overlay: process.env.DISABLE_DEV_OVERLAY === 'true' ? false : undefined,
|
|
logging: process.env.CI ? 'none' : 'error',
|
|
// see: https://webpack.js.org/configuration/dev-server/#websocketurl
|
|
// must be an explicit ws/wss URL because custom protocols (e.g. assets://)
|
|
// cannot be used to construct WebSocket endpoints in Electron
|
|
webSocketURL: 'ws://0.0.0.0:8080/ws',
|
|
},
|
|
historyApiFallback: {
|
|
rewrites: [
|
|
{
|
|
from: /.*/,
|
|
to: () => {
|
|
return process.env.SELF_HOSTED === 'true'
|
|
? '/selfhost.html'
|
|
: '/index.html';
|
|
},
|
|
},
|
|
],
|
|
},
|
|
proxy: [
|
|
{
|
|
context: '/api',
|
|
target: 'http://localhost:3010',
|
|
logLevel: httpProxyMiddlewareLogLevel,
|
|
},
|
|
{
|
|
context: '/socket.io',
|
|
target: 'http://localhost:3010',
|
|
ws: true,
|
|
logLevel: httpProxyMiddlewareLogLevel,
|
|
},
|
|
{
|
|
context: '/graphql',
|
|
target: 'http://localhost:3010',
|
|
logLevel: httpProxyMiddlewareLogLevel,
|
|
},
|
|
],
|
|
};
|