@lark-apaas/fullstack-rspack-preset 0.1.2-alpha.1 → 0.1.2-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.d.ts CHANGED
@@ -1,2 +1,37 @@
1
- export { createRecommendRspackConfig } from './preset';
2
- export type { CreateRecommendRspackConfigOptions } from './preset';
1
+ import type { Configuration } from '@rspack/core';
2
+ /**
3
+ * 创建 Fullstack Rspack 配置(简化版)
4
+ *
5
+ * 自动从环境变量读取配置,用户只需提供覆盖配置
6
+ *
7
+ * @param overrides - 用户自定义的 Rspack 配置,会与默认配置深度合并
8
+ * @returns 完整的 Rspack 配置对象
9
+ *
10
+ * @example
11
+ * ```javascript
12
+ * const { createFullstackRspackConfig } = require('@lark-apaas/fullstack-rspack-preset');
13
+ *
14
+ * module.exports = createFullstackRspackConfig({
15
+ * entry: {
16
+ * main: './client/src/index.tsx',
17
+ * },
18
+ * resolve: {
19
+ * alias: {
20
+ * '@': path.resolve(__dirname, 'client/src'),
21
+ * },
22
+ * },
23
+ * });
24
+ * ```
25
+ *
26
+ * 支持的环境变量:
27
+ * - NODE_ENV: development | production (默认: development)
28
+ * - ENABLE_REACT_REFRESH: true | false (默认: false)
29
+ * - ENABLE_INSPECTOR: true | false (默认: false)
30
+ * - NEED_ROUTES: true | false (默认: true)
31
+ * - CLIENT_BASE_PATH: 客户端基础路径 (默认: /)
32
+ * - ASSETS_CDN_PATH: 生产环境 CDN 路径 (默认: /)
33
+ * - SERVER_PORT: 服务器端口 (默认: 3000)
34
+ * - CLIENT_DEV_PORT: 客户端开发端口 (默认: 8080)
35
+ */
36
+ export declare function createFullstackRspackConfig(overrides?: Partial<Configuration>): Configuration;
37
+ export default createFullstackRspackConfig;
package/lib/index.js CHANGED
@@ -1,5 +1,106 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createRecommendRspackConfig = void 0;
4
- var preset_1 = require("./preset");
5
- Object.defineProperty(exports, "createRecommendRspackConfig", { enumerable: true, get: function () { return preset_1.createRecommendRspackConfig; } });
36
+ exports.createFullstackRspackConfig = createFullstackRspackConfig;
37
+ const webpack_merge_1 = require("webpack-merge");
38
+ const devtool_kits_1 = require("@lark-apaas/devtool-kits");
39
+ const preset_1 = require("./preset");
40
+ /**
41
+ * 创建 Fullstack Rspack 配置(简化版)
42
+ *
43
+ * 自动从环境变量读取配置,用户只需提供覆盖配置
44
+ *
45
+ * @param overrides - 用户自定义的 Rspack 配置,会与默认配置深度合并
46
+ * @returns 完整的 Rspack 配置对象
47
+ *
48
+ * @example
49
+ * ```javascript
50
+ * const { createFullstackRspackConfig } = require('@lark-apaas/fullstack-rspack-preset');
51
+ *
52
+ * module.exports = createFullstackRspackConfig({
53
+ * entry: {
54
+ * main: './client/src/index.tsx',
55
+ * },
56
+ * resolve: {
57
+ * alias: {
58
+ * '@': path.resolve(__dirname, 'client/src'),
59
+ * },
60
+ * },
61
+ * });
62
+ * ```
63
+ *
64
+ * 支持的环境变量:
65
+ * - NODE_ENV: development | production (默认: development)
66
+ * - ENABLE_REACT_REFRESH: true | false (默认: false)
67
+ * - ENABLE_INSPECTOR: true | false (默认: false)
68
+ * - NEED_ROUTES: true | false (默认: true)
69
+ * - CLIENT_BASE_PATH: 客户端基础路径 (默认: /)
70
+ * - ASSETS_CDN_PATH: 生产环境 CDN 路径 (默认: /)
71
+ * - SERVER_PORT: 服务器端口 (默认: 3000)
72
+ * - CLIENT_DEV_PORT: 客户端开发端口 (默认: 8080)
73
+ */
74
+ function createFullstackRspackConfig(overrides = {}) {
75
+ // 1. 自动加载 .env 文件
76
+ try {
77
+ Promise.resolve().then(() => __importStar(require('dotenv'))).then((dotenv) => dotenv.config());
78
+ }
79
+ catch (e) {
80
+ // dotenv 是可选依赖,如果没有安装也不影响使用
81
+ }
82
+ // 2. 从环境变量读取配置
83
+ const isDev = process.env.NODE_ENV !== 'production';
84
+ const enableReactRefresh = process.env.ENABLE_REACT_REFRESH === 'true';
85
+ // enableInspector 目前在 preset 内部由 isDev 控制,保留环境变量以备后续扩展
86
+ // const enableInspector = process.env.ENABLE_INSPECTOR === 'true';
87
+ const needRoutes = process.env.NEED_ROUTES !== 'false'; // 默认 true
88
+ // 3. 处理路径配置
89
+ const clientBasePath = (0, devtool_kits_1.normalizeBasePath)(process.env.CLIENT_BASE_PATH || '/');
90
+ const publicPath = isDev
91
+ ? (process.env.CLIENT_BASE_PATH || '/')
92
+ : (process.env.ASSETS_CDN_PATH || '/');
93
+ // 4. 调用原有的 preset 函数生成基础配置
94
+ // 注意:enableInspector 目前在 preset 中由 isDev 控制,暂不暴露为独立参数
95
+ const baseConfig = (0, preset_1.createRecommendRspackConfig)({
96
+ isDev,
97
+ enableReactRefresh,
98
+ needRoutes,
99
+ clientBasePath,
100
+ publicPath,
101
+ });
102
+ // 5. 深度合并用户配置
103
+ return (0, webpack_merge_1.merge)(baseConfig, overrides);
104
+ }
105
+ // 默认导出简化版 API
106
+ exports.default = createFullstackRspackConfig;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lark-apaas/fullstack-rspack-preset",
3
- "version": "0.1.2-alpha.1",
3
+ "version": "0.1.2-alpha.2",
4
4
  "files": [
5
5
  "lib"
6
6
  ],
@@ -30,10 +30,12 @@
30
30
  "@lark-apaas/miaoda-inspector-jsx-runtime": "^1.0.0",
31
31
  "@rspack/plugin-react-refresh": "^1.5.1",
32
32
  "clsx": "^2.1.1",
33
+ "dotenv": "^16.4.5",
33
34
  "echarts": "^6.0.0",
34
35
  "postcss-import": "^16.1.1",
35
36
  "react-refresh": "^0.17.0",
36
- "tailwind-merge": "^2.5.5"
37
+ "tailwind-merge": "^2.5.5",
38
+ "webpack-merge": "^6.0.1"
37
39
  },
38
40
  "devDependencies": {
39
41
  "@lark-apaas/devtool-kits": "^1.0.0",