nuxt-gin-tools 0.1.8 → 0.1.10

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nuxt-gin-tools",
3
- "version": "0.1.8",
3
+ "version": "0.1.10",
4
4
  "description": "This project is used as a dependency for [nuxt-gin-starter](https://github.com/RapboyGao/nuxt-gin-starter.git)",
5
5
  "bin": {
6
6
  "nuxt-gin": "index.js"
@@ -1,7 +1,44 @@
1
- export declare const config: {
2
- ssr: boolean;
1
+ export interface ServerConfigJson {
2
+ /**
3
+ * 前端基础 URL
4
+ * 用于指定前端路由的基础路径
5
+ */
6
+ baseUrl: `/${string}`;
7
+ /**
8
+ * Nuxt 端口号
9
+ * 用于指定 Nuxt 项目的开发服务器端口号
10
+ * 例如,如果 Nuxt 项目的开发服务器端口号为 3000,则 nuxtPort 为 3000
11
+ */
12
+ nuxtPort: number;
13
+ /**
14
+ * Gin 端口号
15
+ * 用于指定 Gin 服务器的端口号
16
+ * 例如,如果 Gin 服务器的端口号为 8080,则 ginPort 为 8080
17
+ */
18
+ ginPort: number;
19
+ }
20
+ export interface MyNuxtConfig {
21
+ /**
22
+ * 服务器基础路径
23
+ * 用于指定服务器端路由的基础路径
24
+ * 例如,如果服务器端路由为 /api,则 serverBasePath 为 /api
25
+ */
26
+ apiBasePath: `/${string}`;
27
+ /**
28
+ * 服务器配置
29
+ * 包含服务器端的相关配置,如端口号、基础路径等
30
+ */
31
+ serverConfig: ServerConfigJson;
32
+ }
33
+ /**
34
+ * 创建默认的 Nuxt 配置
35
+ * @param param0 包含服务器配置和 API 基础路径的参数对象
36
+ * @returns Nuxt 配置对象
37
+ */
38
+ export declare function createDefaultConfig({ serverConfig, apiBasePath }: MyNuxtConfig): {
3
39
  buildDir: string;
4
40
  srcDir: string;
41
+ ssr: boolean;
5
42
  /**
6
43
  * 配置实验性功能
7
44
  * 禁用 payloadExtraction 功能,该功能可能用于提取页面的有效负载数据
@@ -15,5 +52,46 @@ export declare const config: {
15
52
  enabled: boolean;
16
53
  };
17
54
  };
55
+ /**
56
+ * 配置应用的基础 URL
57
+ * 从 server.config.json 文件中获取 baseUrl 作为应用的基础 URL
58
+ * 这个基础 URL 将用于构建应用的路由和请求地址
59
+ */
60
+ app: {
61
+ baseURL: `/${string}`;
62
+ };
63
+ /**
64
+ * 配置开发服务器的端口号
65
+ * 从 server.config.json 文件中获取 nuxtPort 作为开发服务器的端口号
66
+ * 启动开发服务器时,将使用该端口号进行监听
67
+ */
68
+ devServer: {
69
+ port: number;
70
+ cors: {
71
+ origin: string;
72
+ methods: string[];
73
+ allowHeaders: string[];
74
+ credentials: boolean;
75
+ maxAge: string;
76
+ };
77
+ };
78
+ nitro: {
79
+ output: {
80
+ dir: string;
81
+ };
82
+ devProxy: {
83
+ [x: string]: {
84
+ target: string;
85
+ changeOrigin: boolean;
86
+ };
87
+ };
88
+ };
89
+ vite: {
90
+ plugins: never[];
91
+ esbuild: {
92
+ jsxFactory: string;
93
+ jsxFragment: string;
94
+ };
95
+ };
18
96
  };
19
- export default config;
97
+ export default createDefaultConfig;
@@ -1,24 +1,88 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.config = void 0;
4
- exports.config = {
5
- ssr: false,
6
- buildDir: "vue/.nuxt", // 设置构建目录为 "vue/.nuxt",表示 Nuxt 项目的构建输出将存放在该目录下
7
- srcDir: "vue", // 设置源代码目录为 "vue",表示 Nuxt 项目的源代码将存放在该目录下
3
+ exports.createDefaultConfig = createDefaultConfig;
4
+ /**
5
+ * 创建默认的 Nuxt 配置
6
+ * @param param0 包含服务器配置和 API 基础路径的参数对象
7
+ * @returns Nuxt 配置对象
8
+ */
9
+ function createDefaultConfig({ serverConfig, apiBasePath }) {
8
10
  /**
9
- * 配置实验性功能
10
- * 禁用 payloadExtraction 功能,该功能可能用于提取页面的有效负载数据
11
- * 这里禁用它可能是为了避免某些兼容性问题或特定的项目需求
11
+ * 处理基础路径,去除协议和域名部分,只保留路径部分
12
+ * 例如,将 "https://example.com/api-go" 转换为 "/api-go"
12
13
  */
13
- experimental: {
14
- payloadExtraction: false,
15
- },
16
- // 配置 Nuxt DevTools
17
- // 启用时间线功能,可能用于调试和性能分析
18
- devtools: {
19
- timeline: {
20
- enabled: true,
14
+ const thisBasePath = apiBasePath.replace(/^https?:[/]{2}[^/]+/, "");
15
+ /**
16
+ * 目标服务器的 URL
17
+ * 格式为:http://localhost:ginPort/serverBasePath
18
+ * 其中,ginPort 是从 serverConfig 中获取的 Gin 服务器的端口号
19
+ * serverBasePath 是从 MyNuxtConfig 中获取的服务器基础路径
20
+ */
21
+ const target = `http://localhost:${serverConfig.ginPort}${thisBasePath}`;
22
+ return {
23
+ buildDir: "vue/.nuxt", // 设置构建目录为 "vue/.nuxt",表示 Nuxt 项目的构建输出将存放在该目录下
24
+ srcDir: "vue", // 设置源代码目录为 "vue",表示 Nuxt 项目的源代码将存放在该目录下
25
+ // 设置服务器端代码的目录为 "vue/server",表示服务器端的代码将存放在该目录下
26
+ // serverDir: "vue/server",
27
+ // 禁用服务器端渲染(SSR),即页面将在客户端进行渲染
28
+ ssr: false,
29
+ /**
30
+ * 配置实验性功能
31
+ * 禁用 payloadExtraction 功能,该功能可能用于提取页面的有效负载数据
32
+ * 这里禁用它可能是为了避免某些兼容性问题或特定的项目需求
33
+ */
34
+ experimental: {
35
+ payloadExtraction: false,
36
+ },
37
+ devtools: {
38
+ timeline: {
39
+ enabled: true,
40
+ },
41
+ },
42
+ /**
43
+ * 配置应用的基础 URL
44
+ * 从 server.config.json 文件中获取 baseUrl 作为应用的基础 URL
45
+ * 这个基础 URL 将用于构建应用的路由和请求地址
46
+ */
47
+ app: { baseURL: serverConfig.baseUrl },
48
+ /**
49
+ * 配置开发服务器的端口号
50
+ * 从 server.config.json 文件中获取 nuxtPort 作为开发服务器的端口号
51
+ * 启动开发服务器时,将使用该端口号进行监听
52
+ */
53
+ devServer: {
54
+ port: serverConfig.nuxtPort,
55
+ cors: {
56
+ origin: "*",
57
+ methods: ["GET", "POST", "PUT", "DELETE", "OPTIONS"],
58
+ allowHeaders: ["X-Requested-With", "Content-Type"],
59
+ credentials: true,
60
+ maxAge: "1728000",
61
+ },
62
+ },
63
+ nitro: {
64
+ output: {
65
+ // 设置输出目录为 "vue/.nuxt", 表示 Nitro 的构建输出
66
+ dir: "vue/.output",
67
+ },
68
+ devProxy: {
69
+ // 定义代理规则,将匹配 thisBasePath 的请求代理到目标服务器
70
+ [thisBasePath]: {
71
+ // 目标服务器的 URL
72
+ target: target,
73
+ // 是否改变请求的源,设置为 true 可以避免跨域问题
74
+ changeOrigin: true,
75
+ },
76
+ },
77
+ },
78
+ vite: {
79
+ // 配置 Vite 插件
80
+ plugins: [],
81
+ // 配置 esbuild 编译器的选项
82
+ // 设置 jsxFactory 为 "h",这是 Vue 3 中用于创建虚拟 DOM 的函数
83
+ // 设置 jsxFragment 为 "Fragment",用于处理 JSX 中的片段
84
+ esbuild: { jsxFactory: "h", jsxFragment: "Fragment" },
21
85
  },
22
- },
23
- };
24
- exports.default = exports.config;
86
+ };
87
+ }
88
+ exports.default = createDefaultConfig;