@meadmin/midway-vite-view 1.2.2 → 1.3.0

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/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2013 - Now midwayjs
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2013 - Now midwayjs
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,143 +1,143 @@
1
- # midway-vite-view
2
-
3
- meadmin 的 midway+vite 服务端渲染和客户端渲染组件,支持Vite2、Vite3,支持多vite项目并存。
4
-
5
-
6
- ### github
7
- [https://github.com/yuntian001/midway-vite-view](https://github.com/yuntian001/midway-vite-view)
8
-
9
- ### 使用示例
10
- [https://github.com/yuntian001/midway-vite-view/tree/main/example](https://github.com/yuntian001/midway-vite-view/tree/main/example)
11
-
12
- ## 使用说明
13
-
14
- midway+vite 依赖于静态文件托管组件:[@midwayjs/static-file@3](https://midwayjs.org/docs/extensions/static_file)
15
-
16
- 所有静态文件需要按照@midwayjs/static-file@3规则放在对应的文件夹中,@midwayjs/static-file@3默认的静态文件夹为public
17
-
18
- | web 支持情况| |
19
- | --- | --- |
20
- | @midwayjs/koa | ✅ |
21
- | @midwayjs/faas | ✅ |
22
- | @midwayjs/web | ✅ |
23
- | @midwayjs/express | ❌ |
24
-
25
- ## 代码示例
26
-
27
- [example/](./example/)
28
-
29
- ## 快速开始
30
- - 安装组件扩展包
31
- ```bash
32
- $ npm install vite
33
- $ npm install midway-vite-view
34
- ```
35
- - 项目根目录下新建public文件夹
36
- - view 文件夹下创建放入对应vue项目
37
- - midway configuration.ts中引入视图文件
38
- ```
39
- import * as viteView from 'midway-vite-view';//引入view组件
40
- @Configuration({
41
- imports: [
42
- //其余代码不变
43
- viteView, //导入view组件
44
- ],
45
- })
46
- //其余代码不变
47
- ```
48
-
49
- - midway 中加入配置文件
50
-
51
- ```
52
- view: { //midwayjs 视图配置 说明参考 https://midwayjs.org/docs/extensions/render
53
- defaultViewEngine: 'viteView',
54
- },
55
- viteView: { //midway-vite-view 配置配置详细说明见下方
56
- rootDir:'view',
57
- views: {
58
- 'admin': {//相对于rootDir的前端包路径
59
- // entryServer: 'admin/src/entry-server.ts',//admin暂未支持服务端渲染
60
- entry: 'index.html',//html入库文件,相对于当前包路径
61
- viteConfigFile: resolve(import.meta.dirname, '../../view/admin/vite.config.ts'),
62
- staticFileKey:'viewAdmin',
63
- hmrPort:23679,
64
- },
65
- 'index': {//相对于rootDir的前端包路径
66
- entryServer: 'src/entry-server.ts',
67
- entry: 'index.html',//html入库文件,相对于当前包路径
68
- viteConfigFile: resolve(import.meta.dirname, '../../view/index/vite.config.ts'),
69
- staticFileKey:'viewIndex',
70
- hmrPort:23680,
71
- },
72
- },
73
- },
74
- staticFile: {
75
- dirs: {
76
- default: {
77
- prefix: '/',
78
- dir: 'public',
79
- },
80
- viewAdmin:{
81
- prefix: '/html/admin/',
82
- dir: 'view/admin/dist',
83
- },
84
- viewIndex:{
85
- prefix: '/html/index/',
86
- dir: 'view/index/dist',
87
- },
88
- },
89
- },
90
-
91
- ```
92
-
93
- - vite 配置文件中 按[示例](./example/)进行更改
94
-
95
- - 控制器中调用
96
- ```
97
- //服务端渲染
98
- return this.ctx.render('admin', {
99
- assign:{keyWords:'vite midway'},//html中{{keyWords}}的会被替换为vite midway
100
- });
101
-
102
- //客户端渲染
103
- return this.ctx.render('index',{
104
- ssr:false, //false代表强制客户端渲染,默认会根据配置自动匹配
105
- assign:{keyWords:'vite midway'},//html中{{keyWords}}的会被替换为vite midway
106
- });
107
-
108
- ```
109
-
110
- - package.json中打包命令加入 && vite-view build
111
- ```
112
- "build": "midway-bin build -c && vite-view build"
113
- ```
114
- ## 配置说明
115
-
116
- | 配置项 |类型|是否必须 | 说明 |
117
- | -----------| ----------- | ----------- |----------- |
118
- | prod | boolean| 否 |是否是发布环境 如果不传用运行环境是否为prod/production以区分|
119
- | rootDir | string | 否 | view根路径默认为`'view'`|
120
- | views | `{[key:string]:string\|object}` | 是 | key为前端项目根路径(相对于rootDir文件夹),|
121
-
122
- | views |类型|是否必须 | 说明 |
123
- | -----------| ----------- | ----------- |----------- |
124
- | entryServer | string | 否 | 服务端渲染entry-server路径(相对于前端项目根路径) |
125
- | viteConfigFile | string | 是 | vite config的文件地址,相对于前端项目根路径 |
126
- | entry | string | 是 | 相对于前端项目文件夹的html文件路径|
127
- | staticFileKey | string | 是 | 对应的staticFile.dirs的key |
128
- | hmrPort | number | 是 | 热更新监听端口,会自动向上查找可用端口|
129
-
130
- ## 打包命令 vite-view build 参数说明
131
- 传参方式为 vite-view build
132
-
133
- | 参数项 | 默认值 | 说明 |
134
- | ---------- | ----------- |----------- |
135
- | config | src/config |midway配置文件夹/配置文件|
136
-
137
-
138
-
139
- ## 规则说明
140
- - 服务端渲染时`html` 文件中`<!--ssr-no-content-start-->` `<!--ssr-no-content-end-->`间的内容会被清空(客户端渲染时不做任何处理)
141
- - 服务端渲染时`html` 文件中必须含有`<!--app-html-->`,输出时会替换为解析后的html内容
142
- - 服务端渲染时`html` 文件中必须含有`<!--preload-links-->`,输出时会替换为资源引用语句
1
+ # midway-vite-view
2
+
3
+ meadmin 的 midway+vite 服务端渲染和客户端渲染组件,支持Vite2、Vite3,支持多vite项目并存。
4
+
5
+
6
+ ### github
7
+ [https://github.com/yuntian001/midway-vite-view](https://github.com/yuntian001/midway-vite-view)
8
+
9
+ ### 使用示例
10
+ [https://github.com/yuntian001/midway-vite-view/tree/main/example](https://github.com/yuntian001/midway-vite-view/tree/main/example)
11
+
12
+ ## 使用说明
13
+
14
+ midway+vite 依赖于静态文件托管组件:[@midwayjs/static-file@3](https://midwayjs.org/docs/extensions/static_file)
15
+
16
+ 所有静态文件需要按照@midwayjs/static-file@3规则放在对应的文件夹中,@midwayjs/static-file@3默认的静态文件夹为public
17
+
18
+ | web 支持情况| |
19
+ | --- | --- |
20
+ | @midwayjs/koa | ✅ |
21
+ | @midwayjs/faas | ✅ |
22
+ | @midwayjs/web | ✅ |
23
+ | @midwayjs/express | ❌ |
24
+
25
+ ## 代码示例
26
+
27
+ [example/](./example/)
28
+
29
+ ## 快速开始
30
+ - 安装组件扩展包
31
+ ```bash
32
+ $ npm install vite
33
+ $ npm install midway-vite-view
34
+ ```
35
+ - 项目根目录下新建public文件夹
36
+ - view 文件夹下创建放入对应vue项目
37
+ - midway configuration.ts中引入视图文件
38
+ ```
39
+ import * as viteView from 'midway-vite-view';//引入view组件
40
+ @Configuration({
41
+ imports: [
42
+ //其余代码不变
43
+ viteView, //导入view组件
44
+ ],
45
+ })
46
+ //其余代码不变
47
+ ```
48
+
49
+ - midway 中加入配置文件
50
+
51
+ ```
52
+ view: { //midwayjs 视图配置 说明参考 https://midwayjs.org/docs/extensions/render
53
+ defaultViewEngine: 'viteView',
54
+ },
55
+ viteView: { //midway-vite-view 配置配置详细说明见下方
56
+ rootDir:'view',
57
+ views: {
58
+ 'admin': {//相对于rootDir的前端包路径
59
+ // entryServer: 'admin/src/entry-server.ts',//admin暂未支持服务端渲染
60
+ entry: 'index.html',//html入库文件,相对于当前包路径
61
+ viteConfigFile: resolve(import.meta.dirname, '../../view/admin/vite.config.ts'),
62
+ staticFileKey:'viewAdmin',
63
+ hmrPort:23679,
64
+ },
65
+ 'index': {//相对于rootDir的前端包路径
66
+ entryServer: 'src/entry-server.ts',
67
+ entry: 'index.html',//html入库文件,相对于当前包路径
68
+ viteConfigFile: resolve(import.meta.dirname, '../../view/index/vite.config.ts'),
69
+ staticFileKey:'viewIndex',
70
+ hmrPort:23680,
71
+ },
72
+ },
73
+ },
74
+ staticFile: {
75
+ dirs: {
76
+ default: {
77
+ prefix: '/',
78
+ dir: 'public',
79
+ },
80
+ viewAdmin:{
81
+ prefix: '/html/admin/',
82
+ dir: 'view/admin/dist',
83
+ },
84
+ viewIndex:{
85
+ prefix: '/html/index/',
86
+ dir: 'view/index/dist',
87
+ },
88
+ },
89
+ },
90
+
91
+ ```
92
+
93
+ - vite 配置文件中 按[示例](./example/)进行更改
94
+
95
+ - 控制器中调用
96
+ ```
97
+ //服务端渲染
98
+ return this.ctx.render('admin', {
99
+ assign:{keyWords:'vite midway'},//html中{{keyWords}}的会被替换为vite midway
100
+ });
101
+
102
+ //客户端渲染
103
+ return this.ctx.render('index',{
104
+ ssr:false, //false代表强制客户端渲染,默认会根据配置自动匹配
105
+ assign:{keyWords:'vite midway'},//html中{{keyWords}}的会被替换为vite midway
106
+ });
107
+
108
+ ```
109
+
110
+ - package.json中打包命令加入 && vite-view build
111
+ ```
112
+ "build": "midway-bin build -c && vite-view build"
113
+ ```
114
+ ## 配置说明
115
+
116
+ | 配置项 |类型|是否必须 | 说明 |
117
+ | -----------| ----------- | ----------- |----------- |
118
+ | prod | boolean| 否 |是否是发布环境 如果不传用运行环境是否为prod/production以区分|
119
+ | rootDir | string | 否 | view根路径默认为`'view'`|
120
+ | views | `{[key:string]:string\|object}` | 是 | key为前端项目根路径(相对于rootDir文件夹),|
121
+
122
+ | views |类型|是否必须 | 说明 |
123
+ | -----------| ----------- | ----------- |----------- |
124
+ | entryServer | string | 否 | 服务端渲染entry-server路径(相对于前端项目根路径) |
125
+ | viteConfigFile | string | 是 | vite config的文件地址,相对于前端项目根路径 |
126
+ | entry | string | 是 | 相对于前端项目文件夹的html文件路径|
127
+ | staticFileKey | string | 是 | 对应的staticFile.dirs的key |
128
+ | hmrPort | number | 是 | 热更新监听端口,会自动向上查找可用端口|
129
+
130
+ ## 打包命令 vite-view build 参数说明
131
+ 传参方式为 vite-view build
132
+
133
+ | 参数项 | 默认值 | 说明 |
134
+ | ---------- | ----------- |----------- |
135
+ | config | src/config |midway配置文件夹/配置文件|
136
+
137
+
138
+
139
+ ## 规则说明
140
+ - 服务端渲染时`html` 文件中`<!--ssr-no-content-start-->` `<!--ssr-no-content-end-->`间的内容会被清空(客户端渲染时不做任何处理)
141
+ - 服务端渲染时`html` 文件中必须含有`<!--app-html-->`,输出时会替换为解析后的html内容
142
+ - 服务端渲染时`html` 文件中必须含有`<!--preload-links-->`,输出时会替换为资源引用语句
143
143
  - vue 服务端渲染时不会触发响应性,建议`vue3`在setup中用顶层`await`获取数据
package/bin/vite-view.js CHANGED
@@ -1,3 +1,3 @@
1
- #!/usr/bin/env node
2
- 'use strict';
3
- import '../dist/cli/index.js';
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+ import '../dist/cli/index.js';
@@ -15,7 +15,7 @@ export declare class Build {
15
15
  initEnv(): void;
16
16
  getConfig(): Promise<void>;
17
17
  formatOptions(): Promise<void>;
18
- getViteFilePath(filePath?: string): string;
18
+ getViteFilePath(filePath?: string): string | undefined;
19
19
  getViteConfig(path?: string): Promise<any>;
20
20
  setFileByConfig(): Promise<void>;
21
21
  run(): Promise<void>;
@@ -1,42 +1,21 @@
1
1
  import { setEnv } from '../../utils/env.js';
2
- import fsPromises from 'fs/promises';
2
+ import extend from 'extend2';
3
3
  import * as fs from 'node:fs';
4
4
  import * as path from 'node:path';
5
5
  import { resolve } from 'path';
6
6
  import { build as buildVite, loadConfigFromFile, normalizePath } from 'vite';
7
- import extend from 'extend2';
8
- //递归遍历文件并执行callback
9
- const fileDisplay = async function (filePath, callback) {
10
- const files = await fsPromises.readdir(filePath);
11
- for (let i = 0; i < files.length; i++) {
12
- const filename = files[i];
13
- //获取当前文件的绝对路径
14
- const filedir = path.join(filePath, filename);
15
- //根据文件路径获取文件信息,返回一个fs.Stats对象
16
- const stats = fs.statSync(filedir);
17
- if (stats.isFile()) {
18
- await callback(filename, filedir);
19
- }
20
- else if (stats.isDirectory()) {
21
- await fileDisplay(filedir, callback); //递归,如果是文件夹,就继续遍历该文件夹下面的文件
22
- }
23
- }
24
- };
25
7
  export function lookupFile(dir, formats, options) {
26
8
  for (const format of formats) {
27
9
  const fullPath = path.join(dir, format);
28
10
  if (fs.existsSync(fullPath) && fs.statSync(fullPath).isFile()) {
29
- const result = options?.pathOnly
30
- ? fullPath
31
- : fs.readFileSync(fullPath, 'utf-8');
11
+ const result = options?.pathOnly ? fullPath : fs.readFileSync(fullPath, 'utf-8');
32
12
  if (!options?.predicate || options.predicate(result)) {
33
13
  return result;
34
14
  }
35
15
  }
36
16
  }
37
17
  const parentDir = path.dirname(dir);
38
- if (parentDir !== dir &&
39
- (!options?.rootDir || parentDir.startsWith(options?.rootDir))) {
18
+ if (parentDir !== dir && (!options?.rootDir || parentDir.startsWith(options?.rootDir))) {
40
19
  return lookupFile(parentDir, formats, options);
41
20
  }
42
21
  }
@@ -78,14 +57,11 @@ export class Build {
78
57
  configFiles = [this.options.config];
79
58
  }
80
59
  else {
81
- configFiles = [
82
- this.options.config + '/config.default.ts',
83
- this.options.config + `/config.${this.env}.ts`,
84
- ].filter(file => fs.existsSync(file));
60
+ configFiles = [this.options.config + '/config.default.ts', this.options.config + `/config.${this.env}.ts`].filter((file) => fs.existsSync(file));
85
61
  }
86
- await Promise.all(configFiles.map(file => {
62
+ await Promise.all(configFiles.map((file) => {
87
63
  return (async () => {
88
- const { config } = await loadConfigFromFile(undefined, file);
64
+ const { config } = (await loadConfigFromFile({ command: "build", mode: 'prod' }, file));
89
65
  this.midwayConfig = extend(true, this.midwayConfig, config);
90
66
  })();
91
67
  }));
@@ -103,7 +79,7 @@ export class Build {
103
79
  await this.getConfig();
104
80
  this.options.viewDir = this.midwayConfig.viteView.rootDir;
105
81
  // set absolute path
106
- Object.keys(this.options).forEach(key => {
82
+ Object.keys(this.options).forEach((key) => {
107
83
  if (['viewDir'].includes(key)) {
108
84
  this.options[key] = this.getDiskPath(this.options[key]);
109
85
  }
@@ -127,11 +103,9 @@ export class Build {
127
103
  }
128
104
  async getViteConfig(path) {
129
105
  if (!this.viteCofigs[path ?? 'default']) {
130
- const { config } = await loadConfigFromFile({ command: 'build', mode: this.env, isSsrBuild: true }, this.getViteFilePath(path ?? this.options.viteConfigFile));
106
+ const { config } = (await loadConfigFromFile({ command: 'build', mode: this.env, isSsrBuild: true }, this.getViteFilePath(path ?? this.options.viteConfigFile)));
131
107
  this.viteCofigs[path ?? 'default'] = config;
132
- if (config.build &&
133
- config.build.rollupOptions &&
134
- config.build.rollupOptions.input) {
108
+ if (config.build && config.build.rollupOptions && config.build.rollupOptions.input) {
135
109
  console.warn('[vite view] vite配置文件中指定了rollupOptions.input,打包时将应用此构建,如果不确定配置值是否正确,请删除build.rollupOptions.input配置');
136
110
  }
137
111
  }
@@ -142,13 +116,9 @@ export class Build {
142
116
  this.pages[index] = {
143
117
  name: index,
144
118
  clientIndex: path.resolve(this.options.viewDir, index, ssr.entry),
145
- entryServers: ssr.entryServer
146
- ? path.resolve(this.options.viewDir, index, ssr.entryServer)
147
- : undefined,
119
+ entryServers: ssr.entryServer ? path.resolve(this.options.viewDir, index, ssr.entryServer) : undefined,
148
120
  viteConfigFile: path.resolve(this.options.viewDir, index, ssr.viteConfigFile),
149
- prefix: normalizePath('/' +
150
- this.midwayConfig.staticFile.dirs[ssr.staticFileKey].prefix +
151
- '/'),
121
+ prefix: normalizePath('/' + this.midwayConfig.staticFile.dirs[ssr.staticFileKey].prefix + '/'),
152
122
  outDir: this.getDiskPath(this.midwayConfig.staticFile.dirs[ssr.staticFileKey].dir),
153
123
  };
154
124
  }
@@ -158,10 +128,9 @@ export class Build {
158
128
  console.log('[vite view] build ' + (info.viteConfigFile ?? '') + '\n');
159
129
  await this.buildClient(info.clientIndex, info.prefix, info.outDir, info.viteConfigFile);
160
130
  fs.writeFileSync(info.outDir + '/.gitkeep', '');
161
- info.entryServers &&
162
- (await this.buildSSR(info.entryServers, info.prefix, path.parse(info.outDir +
163
- '/ssr/' +
164
- path.relative(`${this.options.viewDir}/${info.name}`, info.entryServers)).dir, info.viteConfigFile));
131
+ if (info.entryServers) {
132
+ await this.buildSSR(info.entryServers, info.prefix, path.parse(info.outDir + '/ssr/' + path.relative(`${this.options.viewDir}/${info.name}`, info.entryServers)).dir, info.viteConfigFile);
133
+ }
165
134
  }
166
135
  }
167
136
  async buildClient(input, prefix, outDir, viteConfigFile) {
@@ -190,7 +159,7 @@ export class Build {
190
159
  if (viteConfig.ssr && viteConfig.ssr.format === 'cjs') {
191
160
  packagePath = lookupFile(viteConfig.root, ['package.json'], {
192
161
  pathOnly: true,
193
- });
162
+ }) || '';
194
163
  if (packagePath) {
195
164
  packageStr = fs.readFileSync(packagePath, 'utf-8');
196
165
  const packageInfo = JSON.parse(packageStr);
@@ -214,7 +183,9 @@ export class Build {
214
183
  ssr: entryServers,
215
184
  },
216
185
  });
217
- packagePath && fs.writeFileSync(packagePath, packageStr, 'utf-8');
186
+ if (packagePath) {
187
+ fs.writeFileSync(packagePath, packageStr, 'utf-8');
188
+ }
218
189
  })();
219
190
  }
220
191
  getDiskPath(path) {
@@ -244,4 +215,4 @@ export const buildInit = (program) => {
244
215
  await build.run();
245
216
  });
246
217
  };
247
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2NvbW1hbmRlcnMvYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sVUFBVSxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM5QixPQUFPLEtBQUssSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxLQUFLLElBQUksU0FBUyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFFN0IsbUJBQW1CO0FBQ25CLE1BQU0sV0FBVyxHQUFHLEtBQUssV0FDdkIsUUFBZ0IsRUFDaEIsUUFBcUQ7SUFFckQsTUFBTSxLQUFLLEdBQUcsTUFBTSxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDdEMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLGFBQWE7UUFDYixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5Qyw2QkFBNkI7UUFDN0IsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQ25CLE1BQU0sUUFBUSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztR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
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2NvbW1hbmRlcnMvYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sTUFBTSxNQUFNLFNBQVMsQ0FBQztBQUM3QixPQUFPLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM5QixPQUFPLEtBQUssSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxLQUFLLElBQUksU0FBUyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQU83RSxNQUFNLFVBQVUsVUFBVSxDQUFDLEdBQVcsRUFBRSxPQUFpQixFQUFFLE9BQTJCO0lBQ3BGLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7UUFDN0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDeEMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUM5RCxNQUFNLE1BQU0sR0FBRyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2pGLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDckQsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxTQUFT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
@@ -30,11 +30,13 @@ let MidwayViteViewConfiguration = class MidwayViteViewConfiguration {
30
30
  async onServerReady() {
31
31
  if (this.viteViewConfig.prod === false ||
32
32
  !['prod', 'production'].includes(this.app.getEnv())) {
33
- this.viteService.restoreVite();
33
+ this.viteService.getViteMiddlewareArr().catch((err) => {
34
+ console.error('vite服务启动失败', err);
35
+ });
34
36
  }
35
37
  }
36
38
  async onStop() {
37
- this.viteService.catchViteAddress();
39
+ this.viteService.closeAll();
38
40
  }
39
41
  };
40
42
  __decorate([
@@ -65,4 +67,4 @@ MidwayViteViewConfiguration = __decorate([
65
67
  })
66
68
  ], MidwayViteViewConfiguration);
67
69
  export { MidwayViteViewConfiguration };
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEtBQUssR0FBRyxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEtBQUssVUFBVSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxJQUFJLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxLQUFLLGFBQWEsTUFBTSw0QkFBNEIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFXakQsSUFBTSwyQkFBMkIsR0FBakMsTUFBTSwyQkFBMkI7SUFFdEMsV0FBVyxDQUFtQjtJQUc5QixHQUFHLENBQWtCO0lBR3JCLGNBQWMsQ0FBaUI7SUFHL0IsV0FBVyxDQUFjO0lBRXpCLEtBQUssQ0FBQyxPQUFPO1FBQ1gsSUFDRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksS0FBSyxLQUFLO1lBQ2xDLENBQUMsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFDbkQsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNELEtBQUssQ0FBQyxhQUFhO1FBQ2pCLElBQ0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEtBQUssS0FBSztZQUNsQyxDQUFDLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQ25ELENBQUM7WUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU07UUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDdEMsQ0FBQztDQUNGLENBQUE7QUFoQ0M7SUFEQyxNQUFNLEVBQUU7OEJBQ0ksSUFBSSxDQUFDLFdBQVc7Z0VBQUM7QUFHOUI7SUFEQyxHQUFHLEVBQUU7O3dEQUNlO0FBR3JCO0lBREMsTUFBTSxDQUFDLFVBQVUsQ0FBQzs7bUVBQ1k7QUFHL0I7SUFEQyxNQUFNLEVBQUU7OEJBQ0ksV0FBVztnRUFBQztBQVhkLDJCQUEyQjtJQVR2QyxhQUFhLENBQUM7UUFDYixTQUFTLEVBQUUsVUFBVTtRQUNyQixPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDO1FBQzNCLGFBQWEsRUFBRTtZQUNiO2dCQUNFLE9BQU8sRUFBRSxhQUFhO2FBQ3ZCO1NBQ0Y7S0FDRixDQUFDO0dBQ1csMkJBQTJCLENBa0N2QyJ9
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEtBQUssR0FBRyxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEtBQUssVUFBVSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxJQUFJLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxLQUFLLGFBQWEsTUFBTSw0QkFBNEIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFXakQsSUFBTSwyQkFBMkIsR0FBakMsTUFBTSwyQkFBMkI7SUFFdEMsV0FBVyxDQUFtQjtJQUc5QixHQUFHLENBQWtCO0lBR3JCLGNBQWMsQ0FBaUI7SUFHL0IsV0FBVyxDQUFjO0lBRXpCLEtBQUssQ0FBQyxPQUFPO1FBQ1gsSUFDRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksS0FBSyxLQUFLO1lBQ2xDLENBQUMsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFDbkQsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNELEtBQUssQ0FBQyxhQUFhO1FBQ2pCLElBQ0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEtBQUssS0FBSztZQUNsQyxDQUFDLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQ25ELENBQUM7WUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ3BELE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTTtRQUNWLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsQ0FBQztDQUNGLENBQUE7QUFsQ0M7SUFEQyxNQUFNLEVBQUU7OEJBQ0ksSUFBSSxDQUFDLFdBQVc7Z0VBQUM7QUFHOUI7SUFEQyxHQUFHLEVBQUU7O3dEQUNlO0FBR3JCO0lBREMsTUFBTSxDQUFDLFVBQVUsQ0FBQzs7bUVBQ1k7QUFHL0I7SUFEQyxNQUFNLEVBQUU7OEJBQ0ksV0FBVztnRUFBQztBQVhkLDJCQUEyQjtJQVR2QyxhQUFhLENBQUM7UUFDYixTQUFTLEVBQUUsVUFBVTtRQUNyQixPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDO1FBQzNCLGFBQWEsRUFBRTtZQUNiO2dCQUNFLE9BQU8sRUFBRSxhQUFhO2FBQ3ZCO1NBQ0Y7S0FDRixDQUFDO0dBQ1csMkJBQTJCLENBb0N2QyJ9
@@ -11,8 +11,8 @@ export declare class ViteView implements IViewEngine {
11
11
  vite: ViteService;
12
12
  private prodPath;
13
13
  private prod;
14
- getSsrHtml(indexName: string, entryServerUrl: string, url: string, assign: object | undefined, name: string): Promise<any>;
15
- getClientHtml(indexName: any, assign: object | undefined, url: string, name: string): Promise<string>;
16
- render(namePath: string, locals: Record<string, any>, options: Record<string, any>): Promise<any>;
17
- renderString(namePath: string, locals: Record<string, any>, options: Record<string, any>): Promise<any>;
14
+ getSsrHtml(indexName: string, entryServerUrl: string, url: string, assign: object | undefined, name: string): Promise<string>;
15
+ getClientHtml(indexName: string, assign: object | undefined, url: string, name: string): Promise<string>;
16
+ render(namePath: string, locals: Record<string, any>, options: Record<string, any>): Promise<string>;
17
+ renderString(namePath: string, locals: Record<string, any>, options: Record<string, any>): Promise<string>;
18
18
  }
package/dist/lib/view.js CHANGED
@@ -45,7 +45,8 @@ let ViteView = class ViteView {
45
45
  const [appHtml, preloadLinks, teleports] = await render(url, manifest, context);
46
46
  if (context['url']) {
47
47
  // Somewhere a `<Redirect>` was rendered
48
- return this.ctx.redirect(context['url']);
48
+ this.ctx.redirect(context['url']);
49
+ return '';
49
50
  }
50
51
  let html = template
51
52
  .replace('<!--preload-links-->', preloadLinks)
@@ -83,7 +84,7 @@ let ViteView = class ViteView {
83
84
  return (locals.ctx.body = await this.renderString(namePath, locals, options));
84
85
  }
85
86
  async renderString(namePath, locals, options) {
86
- let tpl = options.name;
87
+ let tpl;
87
88
  if (this.viteViewConfig.prod !== undefined) {
88
89
  this.prod = this.viteViewConfig.prod;
89
90
  }
@@ -140,4 +141,4 @@ ViteView = __decorate([
140
141
  Provide()
141
142
  ], ViteView);
142
143
  export { ViteView };
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJOUQsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFFN0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDcEMsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0FBRVosSUFBTSxRQUFRLEdBQWQsTUFBTSxRQUFRO0lBRW5CLGdCQUFnQixDQUFvQjtJQUdwQyxjQUFjLENBQWlCO0lBRy9CLEdBQUcsQ0FBYztJQUdqQixHQUFHLENBQVU7SUFHYixJQUFJLENBQWM7SUFFVixRQUFRLENBQVM7SUFDakIsSUFBSSxDQUFVO0lBRXRCLEtBQUssQ0FBQyxVQUFVLENBQ2QsU0FBaUIsRUFDakIsY0FBc0IsRUFDdEIsR0FBVyxFQUNYLE1BQTBCLEVBQzFCLElBQVk7UUFFWixJQUFJLENBQUM7WUFDSCxJQUFJLFFBQVEsRUFDVixNQUFNLEVBQ04sUUFBUSxHQUFHLEVBQUUsQ0FBQztZQUNoQixRQUFRLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDZixvQ0FBb0M7Z0JBQ3BDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlDLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUs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
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJOUQsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFFN0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDcEMsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0FBRVosSUFBTSxRQUFRLEdBQWQsTUFBTSxRQUFRO0lBRW5CLGdCQUFnQixDQUFvQjtJQUdwQyxjQUFjLENBQWlCO0lBRy9CLEdBQUcsQ0FBYztJQUdqQixHQUFHLENBQVU7SUFHYixJQUFJLENBQWM7SUFFVixRQUFRLENBQVM7SUFDakIsSUFBSSxDQUFVO0lBRXRCLEtBQUssQ0FBQyxVQUFVLENBQ2QsU0FBaUIsRUFDakIsY0FBc0IsRUFDdEIsR0FBVyxFQUNYLE1BQTBCLEVBQzFCLElBQVk7UUFFWixJQUFJLENBQUM7WUFDSCxJQUFJLFFBQVEsRUFDVixNQUFNLEVBQ04sUUFBUSxHQUFHLEVBQUUsQ0FBQztZQUNoQixRQUFRLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDZixvQ0FBb0M7Z0JBQ3BDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlDLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUs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
@@ -1,10 +1,10 @@
1
1
  import { IMiddleware } from '@midwayjs/core';
2
- import { Context, NextFunction } from '@midwayjs/koa';
2
+ import { IMidwayKoaContext, NextFunction } from '@midwayjs/koa';
3
3
  import { ViteService } from '../service/vite.service.js';
4
- export declare class ViteMiddleware implements IMiddleware<Context, NextFunction> {
4
+ export declare class ViteMiddleware implements IMiddleware<IMidwayKoaContext, NextFunction> {
5
5
  viteService: ViteService;
6
6
  private viteMiddlewareArr;
7
7
  init(): Promise<void>;
8
- resolve(): (ctx: Context, next: NextFunction) => Promise<any>;
8
+ resolve(): (ctx: IMidwayKoaContext, next: NextFunction) => Promise<any>;
9
9
  static getName(): string;
10
10
  }
@@ -46,4 +46,4 @@ ViteMiddleware = __decorate([
46
46
  Middleware()
47
47
  ], ViteMiddleware);
48
48
  export { ViteMiddleware };
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5taWRkd2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkd2FyZS92aXRlLm1pZGR3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxrQkFBa0IsRUFFbEIsSUFBSSxFQUNKLE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQWlCLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR2pFLElBQU0sY0FBYyxHQUFwQixNQUFNLGNBQWM7SUFFekIsV0FBVyxDQUFjO0lBRWpCLGlCQUFpQixHQUFrQixFQUFFLENBQUM7SUFHeEMsQUFBTixLQUFLLENBQUMsSUFBSTtRQUNSLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUN6RSxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sS0FBSyxFQUFFLEdBQVksRUFBRSxJQUFrQixFQUFFLEVBQUU7WUFDaEQsSUFDRSxHQUFHLENBQUMsV0FBVyxLQUFLLG1EQUFtRCxFQUN2RSxDQUFDO2dCQUNELE9BQU8sSUFBSSxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakQsQ0FBQztZQUNELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3ZELElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7b0JBQ2pFLE9BQU8sTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDL0QsQ0FBQztZQUNILENBQUM7WUFDRCxNQUFNLElBQUksRUFBRSxDQUFDO1FBQ2YsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztDQUNGLENBQUE7QUE1QkM7SUFEQyxNQUFNLEVBQUU7OEJBQ0ksV0FBVzttREFBQztBQUtuQjtJQURMLElBQUksRUFBRTs7OzswQ0FHTjtBQVRVLGNBQWM7SUFEMUIsVUFBVSxFQUFFO0dBQ0EsY0FBYyxDQThCMUIifQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5taWRkd2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkd2FyZS92aXRlLm1pZGR3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsSUFBSSxFQUNKLE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQWlCLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR2pFLElBQU0sY0FBYyxHQUFwQixNQUFNLGNBQWM7SUFFekIsV0FBVyxDQUFjO0lBRWpCLGlCQUFpQixHQUFrQixFQUFFLENBQUM7SUFHeEMsQUFBTixLQUFLLENBQUMsSUFBSTtRQUNSLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUN6RSxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sS0FBSyxFQUFFLEdBQXNCLEVBQUUsSUFBa0IsRUFBRSxFQUFFO1lBQzFELElBQ0UsR0FBRyxDQUFDLFdBQVcsS0FBSyxtREFBbUQsRUFDdkUsQ0FBQztnQkFDRCxPQUFPLElBQUksa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pELENBQUM7WUFDRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUN2RCxJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUNqRSxPQUFPLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQy9ELENBQUM7WUFDSCxDQUFDO1lBQ0QsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUNmLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTztRQUNaLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7Q0FDRixDQUFBO0FBNUJDO0lBREMsTUFBTSxFQUFFOzhCQUNJLFdBQVc7bURBQUM7QUFLbkI7SUFETCxJQUFJLEVBQUU7Ozs7MENBR047QUFUVSxjQUFjO0lBRDFCLFVBQVUsRUFBRTtHQUNBLGNBQWMsQ0E4QjFCIn0=
@@ -1,5 +1,6 @@
1
+ import { ILogger } from '@midwayjs/core';
1
2
  import * as koa from '@midwayjs/koa';
2
- import { HmrOptions, ViteDevServer } from 'vite';
3
+ import { ViteDevServer } from 'vite';
3
4
  import { ViteViewConfig } from '../interface.js';
4
5
  export type MiddlewareArr = {
5
6
  middleware: any;
@@ -8,12 +9,13 @@ export type MiddlewareArr = {
8
9
  export declare class ViteService {
9
10
  viteViewConfig: ViteViewConfig;
10
11
  koaApp: koa.Application;
12
+ logger: ILogger;
11
13
  private vite;
12
14
  private middlewareArr;
13
- createVite(name: string, hmr?: HmrOptions | boolean): Promise<ViteDevServer>;
15
+ private inited;
16
+ createVite(name: string): Promise<ViteDevServer>;
14
17
  getMiddlewareIndex(prefix: string): number;
15
18
  getViteMiddlewareArr(): Promise<MiddlewareArr>;
19
+ closeAll(): void;
16
20
  getCatchFile(): string;
17
- catchViteAddress(): void;
18
- restoreVite(): void;
19
21
  }
@@ -7,19 +7,18 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { App, Config, Provide, Scope, ScopeEnum } from '@midwayjs/core';
10
+ import { App, Config, Logger, Provide, Scope, ScopeEnum, sleep } from '@midwayjs/core';
11
11
  import * as koa from '@midwayjs/koa';
12
- import c2k from 'koa2-connect';
13
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
12
+ import c2k from 'koa-connect';
13
+ import { existsSync, mkdirSync } from 'node:fs';
14
14
  import * as path from 'node:path';
15
15
  import { createServer, normalizePath } from 'vite';
16
- import { getPort } from '../utils/index.js';
17
16
  const cachePostfix = '_';
18
17
  const vitePlugin = (name, viewRoot, appDir, hmrPort) => ({
19
18
  name: 'vite-plugin-midway-vite-view',
20
19
  async config(config) {
21
20
  if (!config.server.hmr) {
22
- const port = await getPort(hmrPort);
21
+ const port = hmrPort;
23
22
  config.server.hmr = {
24
23
  clientPort: port,
25
24
  port: port,
@@ -33,31 +32,26 @@ const vitePlugin = (name, viewRoot, appDir, hmrPort) => ({
33
32
  if (!config.root) {
34
33
  throw new Error('vite config 中必须配置正确的base或root参数');
35
34
  }
36
- config.base = normalizePath('/' +
37
- path.relative(viewRoot, path.resolve(process.cwd(), config.root)) +
38
- '/');
35
+ config.base = normalizePath('/' + path.relative(viewRoot, path.resolve(process.cwd(), config.root)) + '/');
39
36
  }
40
37
  },
41
38
  });
42
39
  let ViteService = class ViteService {
43
40
  viteViewConfig;
44
41
  koaApp;
42
+ logger;
45
43
  vite = {};
46
44
  middlewareArr = [];
45
+ inited = 'not';
47
46
  //生成vite server
48
- async createVite(name, hmr) {
47
+ async createVite(name) {
49
48
  if (!this.vite[name]) {
50
- let configFile = path.resolve(this.koaApp.getAppDir(), this.viteViewConfig.rootDir, name, this.viteViewConfig.views[name].viteConfigFile);
51
- if (typeof hmr === 'object') {
52
- hmr.port = await getPort(hmr.port);
53
- }
49
+ const configFile = path.resolve(this.koaApp.getAppDir(), this.viteViewConfig.rootDir, name, this.viteViewConfig.views[name].viteConfigFile);
54
50
  const hmrPort = this.viteViewConfig.views[name].hmrPort;
55
51
  this.vite[name] = await createServer({
56
52
  configFile,
57
53
  appType: 'custom',
58
- plugins: [
59
- vitePlugin(name, this.viteViewConfig.rootDir, this.koaApp.getAppDir(), hmrPort),
60
- ],
54
+ plugins: [vitePlugin(name, this.viteViewConfig.rootDir, this.koaApp.getAppDir(), hmrPort)],
61
55
  server: {
62
56
  middlewareMode: true,
63
57
  watch: {
@@ -66,7 +60,6 @@ let ViteService = class ViteService {
66
60
  usePolling: true,
67
61
  interval: 100,
68
62
  },
69
- hmr: hmr,
70
63
  },
71
64
  });
72
65
  }
@@ -82,19 +75,48 @@ let ViteService = class ViteService {
82
75
  }
83
76
  //获取全部vite中间件数组
84
77
  async getViteMiddlewareArr() {
85
- if (this.middlewareArr.length) {
78
+ if (this.inited === 'success') {
86
79
  return this.middlewareArr;
87
80
  }
88
- const configSet = new Set();
89
- for (const [name, view] of Object.entries(this.viteViewConfig.views)) {
90
- const viteServer = await this.createVite(name);
91
- this.middlewareArr.splice(this.getMiddlewareIndex(viteServer.config.base), 0, {
92
- middleware: c2k(viteServer.middlewares),
93
- prefix: viteServer.config.base,
81
+ if (this.inited === 'processing') {
82
+ await sleep(500);
83
+ return await this.getViteMiddlewareArr();
84
+ }
85
+ try {
86
+ this.inited = 'processing';
87
+ const configSet = new Set();
88
+ const promiseArr = [];
89
+ const start = +new Date();
90
+ for (const [name, view] of Object.entries(this.viteViewConfig.views)) {
91
+ promiseArr.push((async () => {
92
+ this.logger.info(` ${name} vite server开始创建`);
93
+ const viteServer = await this.createVite(name);
94
+ this.middlewareArr.splice(this.getMiddlewareIndex(viteServer.config.base), 0, {
95
+ middleware: c2k(viteServer.middlewares),
96
+ prefix: viteServer.config.base,
97
+ });
98
+ configSet.add(view.viteConfigFile);
99
+ this.logger.info(` ${name} vite server 创建 完成`);
100
+ })());
101
+ }
102
+ await Promise.all(promiseArr);
103
+ this.logger.info(`vite server 全部创建完成,耗时${+new Date() - start}ms`);
104
+ this.inited = 'success';
105
+ return this.middlewareArr;
106
+ }
107
+ catch (e) {
108
+ this.inited = 'not';
109
+ throw e;
110
+ }
111
+ }
112
+ closeAll() {
113
+ for (const [, server] of Object.entries(this.vite)) {
114
+ server.close().catch((err) => {
115
+ this.logger.error('关闭vite server失败', err);
94
116
  });
95
- configSet.add(view.viteConfigFile);
96
117
  }
97
- return this.middlewareArr;
118
+ this.vite = {};
119
+ this.middlewareArr.splice(0, this.middlewareArr.length);
98
120
  }
99
121
  //获取catch文件地址
100
122
  getCatchFile() {
@@ -112,29 +134,6 @@ let ViteService = class ViteService {
112
134
  }
113
135
  return path.resolve(catchPath, 'midway_vite_view_port.json');
114
136
  }
115
- //缓存vite地址
116
- catchViteAddress() {
117
- const catchPath = this.getCatchFile();
118
- const json = {};
119
- Object.keys(this.vite).forEach(key => {
120
- json[key] = {
121
- time: new Date(),
122
- hmr: this.vite[key].config.server.hmr,
123
- };
124
- });
125
- writeFileSync(catchPath, JSON.stringify(json), 'utf8');
126
- }
127
- //恢复缓存的vite
128
- restoreVite() {
129
- const catchPath = this.getCatchFile();
130
- if (existsSync(catchPath)) {
131
- const json = JSON.parse(readFileSync(catchPath, 'utf8'));
132
- json &&
133
- Object.keys(json).forEach(key => {
134
- this.createVite(key, json[key].hmr);
135
- });
136
- }
137
- }
138
137
  };
139
138
  __decorate([
140
139
  Config('viteView'),
@@ -144,9 +143,13 @@ __decorate([
144
143
  App(),
145
144
  __metadata("design:type", Object)
146
145
  ], ViteService.prototype, "koaApp", void 0);
146
+ __decorate([
147
+ Logger('coreLogger'),
148
+ __metadata("design:type", Object)
149
+ ], ViteService.prototype, "logger", void 0);
147
150
  ViteService = __decorate([
148
151
  Provide(),
149
152
  Scope(ScopeEnum.Singleton)
150
153
  ], ViteService);
151
154
  export { ViteService };
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2Uvdml0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEUsT0FBTyxLQUFLLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxHQUFHLE1BQU0sY0FBYyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDN0UsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBYyxhQUFhLEVBQWlCLE1BQU0sTUFBTSxDQUFDO0FBRTlFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU1QyxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUM7QUFDekIsTUFBTSxVQUFVLEdBQUcsQ0FDakIsSUFBWSxFQUNaLFFBQWdCLEVBQ2hCLE1BQWMsRUFDZCxPQUFlLEVBQ2YsRUFBRSxDQUFDLENBQUM7SUFDSixJQUFJLEVBQUUsOEJBQThCO0lBQ3BDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBVztRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksR0FBRyxNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRztnQkFDbEIsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLElBQUksRUFBRSxJQUFJO2FBQ1gsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JC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
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2Uvdml0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFXLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRyxPQUFPLEtBQUssR0FBRyxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEdBQUcsTUFBTSxhQUFhLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEQsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQWlCLE1BQU0sTUFBTSxDQUFDO0FBR2xFLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQztBQUN6QixNQUFNLFVBQVUsR0FBRyxDQUFDLElBQVksRUFBRSxRQUFnQixFQUFFLE1BQWMsRUFBRSxPQUFlLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdkYsSUFBSSxFQUFFLDhCQUE4QjtJQUNwQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQVc7UUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDdkIsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDO1lBQ3JCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHO2dCQUNsQixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsSUFBSSxFQUFFLElBQUk7YUFDWCxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckIsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxxQkFBcUIsWUFBWSxH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
@@ -5,22 +5,27 @@ export const getCurrentEnvironment = () => {
5
5
  export function get(object, path) {
6
6
  const keys = path.split('.');
7
7
  let result = object;
8
- keys.forEach(key => {
8
+ keys.forEach((key) => {
9
9
  result = result[key] ?? '';
10
10
  });
11
11
  return result;
12
12
  }
13
13
  //获取可用端口号
14
14
  export function getPort(port) {
15
- return new Promise(resolve => {
15
+ return new Promise((resolve) => {
16
16
  const server = net.createServer();
17
17
  server.unref();
18
18
  server.on('error', () => {
19
- getPort(++port).then(resolve);
19
+ console.log(port + '已被占用');
20
+ getPort(++port)
21
+ .then(resolve)
22
+ .catch(() => {
23
+ console.error('获取可用端口失败');
24
+ });
20
25
  });
21
26
  server.listen(port, () => {
22
27
  server.close(() => resolve(port));
23
28
  });
24
29
  });
25
30
  }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFDM0IsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxFQUFFO0lBQ3hDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksTUFBTSxDQUFDO0FBQy9FLENBQUMsQ0FBQztBQUVGLE1BQU0sVUFBVSxHQUFHLENBQUMsTUFBVyxFQUFFLElBQVk7SUFDM0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QixJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFFcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNqQixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFTO0FBQ1QsTUFBTSxVQUFVLE9BQU8sQ0FBQyxJQUFZO0lBQ2xDLE9BQU8sSUFBSSxPQUFPLENBQVMsT0FBTyxDQUFDLEVBQUU7UUFDbkMsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRTtZQUN0QixPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUU7WUFDdkIsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFDM0IsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxFQUFFO0lBQ3hDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksTUFBTSxDQUFDO0FBQy9FLENBQUMsQ0FBQztBQUVGLE1BQU0sVUFBVSxHQUFHLENBQUMsTUFBVyxFQUFFLElBQVk7SUFDM0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QixJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFFcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ25CLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELFNBQVM7QUFDVCxNQUFNLFVBQVUsT0FBTyxDQUFDLElBQVk7SUFDbEMsT0FBTyxJQUFJLE9BQU8sQ0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQ3JDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7WUFDdEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUM7WUFDM0IsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDO2lCQUNaLElBQUksQ0FBQyxPQUFPLENBQUM7aUJBQ2IsS0FBSyxDQUFDLEdBQUcsRUFBRTtnQkFDVixPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUU7WUFDdkIsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9
package/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { ViteViewConfig } from './dist/index';
2
- export * from './dist/index';
3
-
4
- declare module '@midwayjs/core/dist/interface' {
5
- interface MidwayConfig {
6
- viteView?: PowerPartial<ViteViewConfig>;
7
- }
8
- }
1
+ import { ViteViewConfig } from './dist/index';
2
+ export * from './dist/index';
3
+
4
+ declare module '@midwayjs/core/dist/interface' {
5
+ interface MidwayConfig {
6
+ viteView?: PowerPartial<ViteViewConfig>;
7
+ }
8
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meadmin/midway-vite-view",
3
- "version": "1.2.2",
3
+ "version": "1.3.0",
4
4
  "description": "midway 的 vite 服务端渲染和客户端渲染组件,",
5
5
  "main": "dist/index.js",
6
6
  "typings": "index.d.ts",
@@ -36,16 +36,15 @@
36
36
  "dependencies": {
37
37
  "@midwayjs/view": "^3.20.17",
38
38
  "commander": "^14.0.0",
39
- "extend2": "^1.0.1",
40
- "koa2-connect": "^1.0.2"
39
+ "extend2": "^4.0.0",
40
+ "koa-connect": "^2.1.1"
41
41
  },
42
42
  "devDependencies": {
43
- "@midwayjs/mock": "^3.0.0",
44
43
  "@types/jest": "^27.4.0",
45
44
  "@types/node": "*",
46
45
  "compression": "^1.7.4",
47
46
  "jest": "^27.5.1",
48
- "mwts": "^1.3.0",
47
+ "mwtsc": "^1.15.2",
49
48
  "typescript": "^5.9.2"
50
49
  },
51
50
  "peerDependencies": {
@@ -62,8 +61,6 @@
62
61
  "build": "mwtsc --cleanOutDir",
63
62
  "test": "mwtsc test --ts",
64
63
  "cov": "mwtsc cov --ts",
65
- "lint": "mwts check",
66
- "lint:fix": "mwts fix",
67
64
  "vueBuild": "vite bind"
68
65
  }
69
66
  }