/
viktorphp
/
front-socket
Обзор
Документация
Войти
/
viktorphp
/
front-socket
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
_rspack.config.ts
194 строки
8 KB
Иванов Виктор Евгеньевич
[feature-diadry]: добавить страницу дневника
11 апр 2026, 16:02
11 апр 2026, 16:02
e2d184b
Код
Авторство
О чём код?
/* "@swc/core": "^1.9.2", "@swc/plugin-styled-components": "^5.0.0", "@rsbuild/plugin-typed-css-modules": "^1.0.2", "@rspack/cli": "^1.0.8", "@rspack/core": "^1.0.8", */ /* import path from 'path'; import { Configuration } from '@rspack/cli'; import { HtmlRspackPlugin } from '@rspack/core'; // import { pluginTypedCSSModules } from "@rsbuild/plugin-typed-css-modules"; const config: Configuration = { entry: { main: './src/index.tsx', }, output: { path: path.resolve(__dirname, 'dist'), filename: '[name].[contenthash].js', }, devServer: { allowedHosts: 'auto', port: 3010, historyApiFallback: true, static: { directory: path.join(__dirname, 'public'), }, proxy: [ { context: ['/profile', '/auth'], target: 'http://localhost:3000', // Изменить на порт где работает API-сервер changeOrigin: true, }, ], }, plugins: [ new HtmlRspackPlugin({ template: path.resolve(__dirname, 'src', 'index.html'), filename: 'index.html', }), ], experiments: { css: true, }, resolve: { extensions: ['.ts', '.tsx', '.js', '.jsx'], alias: { '@mui/styled-engine': '@mui/styled-engine-sc', // Для Styled в MUI '@app': path.resolve(__dirname, './src/app'), '@entities': path.resolve(__dirname, './src/entities'), '@features': path.resolve(__dirname, './src/features'), '@pages': path.resolve(__dirname, './src/pages'), '@shared': path.resolve(__dirname, './src/shared'), '@widgets': path.resolve(__dirname, './src/widgets'), '@': path.resolve(__dirname, './src'), // Для работы с сигналами '@preact/signals-react': require.resolve('@preact/signals-react'), }, }, module: { parser: { css: { namedExports: false, esModule: true, }, 'css/auto': { namedExports: false, esModule: true, }, 'css/module': { namedExports: false, esModule: true, }, }, rules: [ { test: /\.(js|jsx)$/, exclude: [/node_modules/], use: { loader: 'builtin:swc-loader', options: { jsc: { parser: { syntax: 'ecmascript', jsx: true, }, transform: { react: { runtime: 'automatic', pragma: 'React.createElement', pragmaFrag: 'React.Fragment', throwIfNamespace: true, development: false, // process.env.NODE_ENV !== 'production' useBuiltins: false, }, }, experimental: { plugins: [ [ '@swc/plugin-styled-components', { displayName: true, // Добавляет понятные имена компонентов в DevTools браузера ssr: false, // Отключает оптимизации для серверного рендеринга minify: true, // Включает минификацию стилей, при true удаляет пробелы и переносы строк в CSS transpileTemplateLiterals: true, // Преобразует template literals в более простые строки, улучшает производительность pure: false, // При true помечает styled-components как pure (чистые) функции, помогает при tree-shaking, но может вызвать проблемы с некоторыми паттернами fileName: true, // Добавляет информацию о файле в генерируемые классы, помогает при отладке namespace: 'sc', // Не работает!!! Добавляет префикс к генерируемым именам классов, помогает избежать конфликтов имен meaninglessFileNames: ['index', 'styles'], // Список файлов, имена которых не будут использоваться при генерации имен компонентов, полезно для файлов с общими именами, чтобы избежать неинформативных имен компонентов }, ], ], }, }, }, }, type: 'javascript/auto', }, { test: /\.(ts|tsx)$/, exclude: [/node_modules/], use: { loader: 'builtin:swc-loader', options: { jsc: { parser: { syntax: 'typescript', tsx: true, }, transform: { react: { runtime: 'automatic', // Избавляет от необходимости импортировать React. Автоматически импортирует необходимые функции для работы с JSX из специального модуля react/jsx-runtime. pragma: 'React.createElement', pragmaFrag: 'React.Fragment', throwIfNamespace: true, development: false, // process.env.NODE_ENV !== 'production' useBuiltins: false, }, }, experimental: { plugins: [ [ '@swc/plugin-styled-components', { displayName: true, // Добавляет понятные имена компонентов в DevTools браузера ssr: false, // Отключает оптимизации для серверного рендеринга minify: true, // Включает минификацию стилей, при true удаляет пробелы и переносы строк в CSS transpileTemplateLiterals: true, // Преобразует template literals в более простые строки, улучшает производительность pure: false, // При true помечает styled-components как pure (чистые) функции, помогает при tree-shaking, но может вызвать проблемы с некоторыми паттернами fileName: true, // Добавляет информацию о файле в генерируемые классы, помогает при отладке namespace: 'sc', // Не работает!!! Добавляет префикс к генерируемым именам классов, помогает избежать конфликтов имен meaninglessFileNames: ['index', 'styles'], // Список файлов, имена которых не будут использоваться при генерации имен компонентов, полезно для файлов с общими именами, чтобы избежать неинформативных имен компонентов }, ], ], }, }, }, }, type: 'javascript/auto', }, { test: /\.svg$/i, issuer: /\.[jt]sx?$/, use: ['@svgr/webpack'], }, { test: /\.(scss|sass)$/, type: 'css/auto', use: [ { loader: 'postcss-loader', options: { postcssOptions: { plugins: { tailwindcss: {}, autoprefixer: {}, }, }, }, }, 'sass-loader', ], }, ], }, }; export default config; */