@meadmin/midway-vite-view 1.0.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 +21 -0
- package/README.md +121 -0
- package/bin/vite-view.js +3 -0
- package/dist/cli/commanders/build.d.ts +29 -0
- package/dist/cli/commanders/build.js +318 -0
- package/dist/cli/commanders/index.d.ts +2 -0
- package/dist/cli/commanders/index.js +5 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +12 -0
- package/dist/config/config.default.d.ts +2 -0
- package/dist/config/config.default.js +6 -0
- package/dist/configuration.d.ts +13 -0
- package/dist/configuration.js +68 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +5 -0
- package/dist/interface.d.ts +23 -0
- package/dist/interface.js +2 -0
- package/dist/lib/view.d.ts +19 -0
- package/dist/lib/view.js +145 -0
- package/dist/middware/vite.middware.d.ts +10 -0
- package/dist/middware/vite.middware.js +49 -0
- package/dist/service/vite.service.d.ts +21 -0
- package/dist/service/vite.service.js +161 -0
- package/dist/utils/env.d.ts +1 -0
- package/dist/utils/env.js +20 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.js +24 -0
- package/index.d.ts +8 -0
- package/package.json +66 -0
package/LICENSE
ADDED
|
@@ -0,0 +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.
|
package/README.md
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
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
|
+
views:{
|
|
57
|
+
'index/index.html':'index/src/entry-server.js',
|
|
58
|
+
'admin/index.html':'admin/src/entry-server.js',
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
- vite 配置文件中 按[示例](./example/)进行更改
|
|
65
|
+
|
|
66
|
+
- 控制器中调用
|
|
67
|
+
```
|
|
68
|
+
//服务端渲染
|
|
69
|
+
return this.ctx.render('admin/index.html', {
|
|
70
|
+
assign:{keyWords:'vite midway'},//html中{{keyWords}}的会被替换为vite midway
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
//客户端渲染
|
|
74
|
+
return this.ctx.render('index/index.html',{
|
|
75
|
+
ssr:false, //false代表强制客户端渲染,默认会根据配置自动匹配
|
|
76
|
+
assign:{keyWords:'vite midway'},//html中{{keyWords}}的会被替换为vite midway
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
- package.json中打包命令加入 && vite-view build
|
|
82
|
+
```
|
|
83
|
+
"build": "midway-bin build -c && vite-view build"
|
|
84
|
+
```
|
|
85
|
+
## 配置说明
|
|
86
|
+
|
|
87
|
+
| 配置项 |类型|是否必须 | 说明 |
|
|
88
|
+
| -----------| ----------- | ----------- |----------- |
|
|
89
|
+
| prod | boolean| 否 |是否是发布环境 如果不传用运行环境是否为prod/production以区分|
|
|
90
|
+
| views | `{[key:string]:string\|object}` | 是 | key为index.html路径(相对于view文件夹),value为服务端渲染entry-server路径(相对于view文件夹,如果没有entry-server,填'')|
|
|
91
|
+
| outPrefix | string | 否 | 打包前缀目录,会在static-file文件夹下创建子文件夹进行打包,默认为html |
|
|
92
|
+
| viteConfigFile | string | 否 | vite配置文件地址,默认按vite规则选择vite.config.js/vite.config.ts |
|
|
93
|
+
| staticFileKey | string | 否 | 对应的staticFile.dirs的key 默认为default |
|
|
94
|
+
| root | string | 否 | vite.coinfig的root根目录相对于view文件夹的相对路径 默认为`''`|
|
|
95
|
+
|
|
96
|
+
| views |类型|是否必须 | 说明 |
|
|
97
|
+
| -----------| ----------- | ----------- |----------- |
|
|
98
|
+
| entryServer | string | 否 | 服务端渲染entry-server路径(相对于view文件夹,如果没有entry-server,填'') |
|
|
99
|
+
| viteConfigFile | string | 否 | vite config的文件地址,多vite项目时需要分别设置此参数,默认使用外层配置的viteConfigFile |
|
|
100
|
+
| root | string | 否 | vite.coinfig的root根目录相对于view文件夹的相对路径 默认使用外层配置的`root`|
|
|
101
|
+
|
|
102
|
+
## 打包命令 vite-view build 参数说明
|
|
103
|
+
传参方式为 vite-view build --type 1
|
|
104
|
+
|
|
105
|
+
| 参数项 | 默认值 | 说明 |
|
|
106
|
+
| ---------- | ----------- |----------- |
|
|
107
|
+
|type | 1 | 构建方式:1=根据配置文件自动构建,2=自动寻找viewDir文件夹下的index.html和entry-server.js进行构建|
|
|
108
|
+
| config | src/config |midway配置文件夹/配置文件|
|
|
109
|
+
| staticFileKey |viteView.staticFileKey 或 default|使用的staticFile.dirs的key|
|
|
110
|
+
| outDir | staticFile.dirs[staticFileKey].dir 或 public |编译输出目录|
|
|
111
|
+
| viteConfigFile |命令根目录 vite.config.js、vite.config.ts|vite 配置文件 |
|
|
112
|
+
| viewDir | view | 视图文件夹 |
|
|
113
|
+
| prefix | staticFile.dirs[staticFileKey].prefix 或 /public | 静态缓存前缀 |
|
|
114
|
+
| outPrefix | viteView.outPrefix 或 html | 编译输出前缀,会在static-file文件夹下创建子文件夹进行打包 |
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
## 规则说明
|
|
118
|
+
- 服务端渲染时`html` 文件中`<!--ssr-no-content-start-->` `<!--ssr-no-content-end-->`间的内容会被清空(客户端渲染时不做任何处理)
|
|
119
|
+
- 服务端渲染时`html` 文件中必须含有`<!--app-html-->`,输出时会替换为解析后的html内容
|
|
120
|
+
- 服务端渲染时`html` 文件中必须含有`<!--preload-links-->`,输出时会替换为资源引用语句
|
|
121
|
+
- vue 服务端渲染时不会触发响应性,建议`vue3`在setup中用顶层`await`获取数据
|
package/bin/vite-view.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
interface LookupFileOptions {
|
|
3
|
+
pathOnly?: boolean;
|
|
4
|
+
rootDir?: string;
|
|
5
|
+
predicate?: (file: string) => boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function lookupFile(dir: string, formats: string[], options?: LookupFileOptions): string | undefined;
|
|
8
|
+
export declare class Build {
|
|
9
|
+
options: Record<string, any>;
|
|
10
|
+
private pages;
|
|
11
|
+
private env;
|
|
12
|
+
private midwayConfig;
|
|
13
|
+
private viteCofigs;
|
|
14
|
+
private rootDir;
|
|
15
|
+
initEnv(): void;
|
|
16
|
+
getConfig(): Promise<void>;
|
|
17
|
+
getViteFilePath(filePath?: string): string;
|
|
18
|
+
getViteConfig(path?: string): Promise<any>;
|
|
19
|
+
formatOptions(): Promise<void>;
|
|
20
|
+
setFile(): Promise<void>;
|
|
21
|
+
run(): Promise<void>;
|
|
22
|
+
buildClient(input: string[], prefix: string, outDir: string, viteConfigFile: string): Promise<void>;
|
|
23
|
+
buildSSR(entryServers: string[], prefix: string, outDir: string, viteConfigFile: string): Promise<void>;
|
|
24
|
+
setFileByConfig(): Promise<void>;
|
|
25
|
+
setFileByFileName(): Promise<void>;
|
|
26
|
+
private getDiskPath;
|
|
27
|
+
}
|
|
28
|
+
export declare const buildInit: (program: Command) => void;
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
import { loadConfigFromFile, build as buildVite } from 'vite';
|
|
2
|
+
import * as fs from 'node:fs';
|
|
3
|
+
import * as path from 'node:path';
|
|
4
|
+
import fsPromises from 'fs/promises';
|
|
5
|
+
import { resolve } from 'path';
|
|
6
|
+
import { normalizePath } from 'vite';
|
|
7
|
+
import extend from 'extend2';
|
|
8
|
+
import { setEnv } from '../../utils/env.js';
|
|
9
|
+
//递归遍历文件并执行callback
|
|
10
|
+
const fileDisplay = async function (filePath, callback) {
|
|
11
|
+
const files = await fsPromises.readdir(filePath);
|
|
12
|
+
for (let i = 0; i < files.length; i++) {
|
|
13
|
+
const filename = files[i];
|
|
14
|
+
//获取当前文件的绝对路径
|
|
15
|
+
const filedir = path.join(filePath, filename);
|
|
16
|
+
//根据文件路径获取文件信息,返回一个fs.Stats对象
|
|
17
|
+
const stats = fs.statSync(filedir);
|
|
18
|
+
if (stats.isFile()) {
|
|
19
|
+
await callback(filename, filedir);
|
|
20
|
+
}
|
|
21
|
+
else if (stats.isDirectory()) {
|
|
22
|
+
await fileDisplay(filedir, callback); //递归,如果是文件夹,就继续遍历该文件夹下面的文件
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
export function lookupFile(dir, formats, options) {
|
|
27
|
+
for (const format of formats) {
|
|
28
|
+
const fullPath = path.join(dir, format);
|
|
29
|
+
if (fs.existsSync(fullPath) && fs.statSync(fullPath).isFile()) {
|
|
30
|
+
const result = options?.pathOnly
|
|
31
|
+
? fullPath
|
|
32
|
+
: fs.readFileSync(fullPath, 'utf-8');
|
|
33
|
+
if (!options?.predicate || options.predicate(result)) {
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const parentDir = path.dirname(dir);
|
|
39
|
+
if (parentDir !== dir &&
|
|
40
|
+
(!options?.rootDir || parentDir.startsWith(options?.rootDir))) {
|
|
41
|
+
return lookupFile(parentDir, formats, options);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export class Build {
|
|
45
|
+
options = {};
|
|
46
|
+
pages = {};
|
|
47
|
+
env = 'prod';
|
|
48
|
+
midwayConfig = {};
|
|
49
|
+
viteCofigs = {};
|
|
50
|
+
rootDir = process.cwd();
|
|
51
|
+
initEnv() {
|
|
52
|
+
if (process.env.MIDWAY_SERVER_ENV) {
|
|
53
|
+
this.env = process.env.MIDWAY_SERVER_ENV;
|
|
54
|
+
}
|
|
55
|
+
else if (process.env.NODE_ENV) {
|
|
56
|
+
this.env = process.env.NODE_ENV;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
async getConfig() {
|
|
60
|
+
this.midwayConfig = {
|
|
61
|
+
view: {
|
|
62
|
+
rootDir: {
|
|
63
|
+
default: path.join(this.rootDir, './view'),
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
viteView: {
|
|
67
|
+
views: {},
|
|
68
|
+
outPrefix: 'html',
|
|
69
|
+
staticFileKey: 'default',
|
|
70
|
+
root: '',
|
|
71
|
+
},
|
|
72
|
+
staticFile: {
|
|
73
|
+
dirs: {
|
|
74
|
+
default: {
|
|
75
|
+
prefix: '/public',
|
|
76
|
+
dir: 'public',
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
if (+this.options.type === 1) {
|
|
82
|
+
try {
|
|
83
|
+
let configFiles;
|
|
84
|
+
const stat = await fs.statSync(this.options.config);
|
|
85
|
+
if (stat.isFile()) {
|
|
86
|
+
configFiles = [this.options.config];
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
configFiles = [
|
|
90
|
+
this.options.config + '/config.default.ts',
|
|
91
|
+
this.options.config + `/config.${this.env}.ts`,
|
|
92
|
+
].filter(file => fs.existsSync(file));
|
|
93
|
+
}
|
|
94
|
+
await Promise.all(configFiles.map(file => {
|
|
95
|
+
return (async () => {
|
|
96
|
+
const { config } = await loadConfigFromFile(undefined, file);
|
|
97
|
+
this.midwayConfig = extend(true, this.midwayConfig, config);
|
|
98
|
+
})();
|
|
99
|
+
}));
|
|
100
|
+
}
|
|
101
|
+
catch (e) {
|
|
102
|
+
console.error('解析midway配置失败你可以使用-t 2 用文件名匹配模式进行构建');
|
|
103
|
+
throw e;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
getViteFilePath(filePath) {
|
|
108
|
+
if (filePath) {
|
|
109
|
+
if (!fs.existsSync(filePath)) {
|
|
110
|
+
throw new Error(`vite 配置文件 ${filePath} 不存在`);
|
|
111
|
+
}
|
|
112
|
+
return filePath;
|
|
113
|
+
}
|
|
114
|
+
filePath = this.getDiskPath('vite.config.js');
|
|
115
|
+
if (!fs.existsSync(filePath)) {
|
|
116
|
+
filePath = this.getDiskPath('vite.config.ts');
|
|
117
|
+
}
|
|
118
|
+
if (!fs.existsSync(filePath)) {
|
|
119
|
+
throw new Error(`vite 配置文件 vite.config.js、${filePath} 不存在`);
|
|
120
|
+
}
|
|
121
|
+
return filePath;
|
|
122
|
+
}
|
|
123
|
+
async getViteConfig(path) {
|
|
124
|
+
if (!this.viteCofigs[path ?? 'default']) {
|
|
125
|
+
const { config } = await loadConfigFromFile({ command: 'build', mode: this.env, isSsrBuild: true }, this.getViteFilePath(path ?? this.options.viteConfigFile));
|
|
126
|
+
this.viteCofigs[path ?? 'default'] = config;
|
|
127
|
+
if (config.build &&
|
|
128
|
+
config.build.rollupOptions &&
|
|
129
|
+
config.build.rollupOptions.input) {
|
|
130
|
+
console.warn('[vite view] vite配置文件中指定了rollupOptions.input,打包时将应用此构建,如果不确定配置值是否正确,请删除build.rollupOptions.input配置');
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return this.viteCofigs[path ?? 'default'];
|
|
134
|
+
}
|
|
135
|
+
async formatOptions() {
|
|
136
|
+
this.initEnv();
|
|
137
|
+
if (!this.options.config) {
|
|
138
|
+
this.options.config = 'src/config';
|
|
139
|
+
}
|
|
140
|
+
await this.getConfig();
|
|
141
|
+
this.options.staticFileKey =
|
|
142
|
+
this.options.staticFileKey ?? this.midwayConfig.viteView.staticFileKey;
|
|
143
|
+
this.options.outDir =
|
|
144
|
+
this.options.outDir ??
|
|
145
|
+
this.midwayConfig.staticFile.dirs[this.options.staticFileKey].dir;
|
|
146
|
+
this.options.prefix =
|
|
147
|
+
this.options.prefix ??
|
|
148
|
+
this.midwayConfig.staticFile.dirs[this.options.staticFileKey].prefix;
|
|
149
|
+
this.options.viteConfigFile =
|
|
150
|
+
this.options.viteConfigFile ?? this.midwayConfig.viteView.viteConfigFile;
|
|
151
|
+
this.options.outPrefix =
|
|
152
|
+
this.options.outPrefix ?? this.midwayConfig.viteView.outPrefix;
|
|
153
|
+
if (!this.options.viewDir) {
|
|
154
|
+
this.options.viewDir = 'view';
|
|
155
|
+
}
|
|
156
|
+
this.options.root =
|
|
157
|
+
this.options.root ?? normalizePath(this.midwayConfig.viteView.root);
|
|
158
|
+
// set absolute path
|
|
159
|
+
Object.keys(this.options).forEach(key => {
|
|
160
|
+
if (['config', 'outDir', 'viteConfigFile', 'viewDir'].includes(key)) {
|
|
161
|
+
this.options[key] = this.getDiskPath(this.options[key]);
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
this.options.outDir = path.resolve(this.options.outDir, this.options.outPrefix);
|
|
165
|
+
this.options.prefix = normalizePath(this.options.prefix + `/${this.options.outPrefix}/`);
|
|
166
|
+
}
|
|
167
|
+
async setFile() {
|
|
168
|
+
if (+this.options.type === 1) {
|
|
169
|
+
await this.setFileByConfig();
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
await this.setFileByFileName();
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
async run() {
|
|
176
|
+
for (const [, info] of Object.entries(this.pages)) {
|
|
177
|
+
console.log('[vite view] build ' + (info.viteConfigFile ?? '') + '\n');
|
|
178
|
+
await this.buildClient(info.clientIndex, normalizePath(this.options.prefix + `/${info.prefix}/`), path.resolve(this.options.outDir, info.prefix), info.viteConfigFile);
|
|
179
|
+
info.entryServers.length &&
|
|
180
|
+
(await this.buildSSR(info.entryServers, normalizePath(this.options.prefix + `/${info.prefix}/`), this.options.outDir, info.viteConfigFile));
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
async buildClient(input, prefix, outDir, viteConfigFile) {
|
|
184
|
+
console.log('[vite view] build client\n');
|
|
185
|
+
await buildVite({
|
|
186
|
+
base: prefix,
|
|
187
|
+
configFile: viteConfigFile,
|
|
188
|
+
build: {
|
|
189
|
+
outDir: outDir,
|
|
190
|
+
ssrManifest: 'ssr-manifest.json',
|
|
191
|
+
rollupOptions: { input },
|
|
192
|
+
ssr: false,
|
|
193
|
+
},
|
|
194
|
+
});
|
|
195
|
+
const content = fs.readFileSync(path.resolve(outDir, 'ssr-manifest.json'), 'utf8');
|
|
196
|
+
const viteConfig = await this.getViteConfig(viteConfigFile);
|
|
197
|
+
fs.writeFileSync(path.resolve(outDir, 'ssr-manifest.json'), content.replace(new RegExp('"/' + (viteConfig.build?.assetsDir || 'assets'), 'g'), '"' + prefix + (viteConfig.build?.assetsDir || 'assets')));
|
|
198
|
+
}
|
|
199
|
+
async buildSSR(entryServers, prefix, outDir, viteConfigFile) {
|
|
200
|
+
console.log('[vite view] build ssr\n');
|
|
201
|
+
await Promise.all(entryServers.map((file) => (async () => {
|
|
202
|
+
const viteConfig = await this.getViteConfig(viteConfigFile);
|
|
203
|
+
let packagePath = '';
|
|
204
|
+
let packageStr = '';
|
|
205
|
+
if (viteConfig.ssr && viteConfig.ssr.format === 'cjs') {
|
|
206
|
+
packagePath = lookupFile(viteConfig.root, ['package.json'], {
|
|
207
|
+
pathOnly: true,
|
|
208
|
+
});
|
|
209
|
+
if (packagePath) {
|
|
210
|
+
packageStr = fs.readFileSync(packagePath, 'utf-8');
|
|
211
|
+
const packageInfo = JSON.parse(packageStr);
|
|
212
|
+
if (packageInfo.type && packageInfo.type === 'module') {
|
|
213
|
+
packageInfo.type = 'commonjs';
|
|
214
|
+
fs.writeFileSync(packagePath, JSON.stringify(packageInfo), 'utf-8');
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
packagePath = '';
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
await buildVite({
|
|
222
|
+
base: prefix,
|
|
223
|
+
publicDir: false,
|
|
224
|
+
configFile: viteConfigFile,
|
|
225
|
+
build: {
|
|
226
|
+
emptyOutDir: false,
|
|
227
|
+
outDir: path.resolve(outDir, path.relative(this.options.viewDir, file.slice(0, -path.basename(file).length))),
|
|
228
|
+
ssrManifest: false,
|
|
229
|
+
ssr: file,
|
|
230
|
+
},
|
|
231
|
+
});
|
|
232
|
+
packagePath && fs.writeFileSync(packagePath, packageStr, 'utf-8');
|
|
233
|
+
})()));
|
|
234
|
+
}
|
|
235
|
+
async setFileByConfig() {
|
|
236
|
+
for (const [index, ssr] of Object.entries(this.midwayConfig.viteView.views)) {
|
|
237
|
+
if (typeof ssr === 'string') {
|
|
238
|
+
if (!this.pages['default']) {
|
|
239
|
+
this.pages['default'] = {
|
|
240
|
+
clientIndex: [],
|
|
241
|
+
entryServers: [],
|
|
242
|
+
prefix: this.options.root,
|
|
243
|
+
viteConfigFile: this.options.viteConfigFile,
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
this.pages['default'].clientIndex.push(path.resolve(this.options.viewDir, index));
|
|
247
|
+
if (ssr) {
|
|
248
|
+
this.pages['default'].entryServers.push(path.resolve(this.options.viewDir, ssr));
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
if (!this.pages[ssr.viteConfigFile ?? 'default']) {
|
|
253
|
+
this.pages[ssr.viteConfigFile ?? 'default'] = {
|
|
254
|
+
clientIndex: [],
|
|
255
|
+
entryServers: [],
|
|
256
|
+
viteConfigFile: ssr.viteConfigFile ?? this.options.viteConfigFile,
|
|
257
|
+
prefix: ssr.root ?? this.options.root,
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
this.pages[ssr.viteConfigFile ?? 'default'].clientIndex.push(path.resolve(this.options.viewDir, index));
|
|
261
|
+
if (ssr.entryServer) {
|
|
262
|
+
this.pages[ssr.viteConfigFile ?? 'default'].entryServers.push(path.resolve(this.options.viewDir, ssr.entryServer));
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
async setFileByFileName() {
|
|
268
|
+
this.pages['default'] = {
|
|
269
|
+
clientIndex: [],
|
|
270
|
+
entryServers: [],
|
|
271
|
+
viteConfigFile: this.options.viteConfigFile,
|
|
272
|
+
prefix: '',
|
|
273
|
+
};
|
|
274
|
+
await fileDisplay(this.options.viewDir, (fileName, filePath) => {
|
|
275
|
+
if (fileName === 'index.html') {
|
|
276
|
+
this.pages['default'].clientIndex.push(filePath);
|
|
277
|
+
}
|
|
278
|
+
else if (['entry-server.js', 'entry-server.jsx', 'entry-server.tsx'].includes(fileName)) {
|
|
279
|
+
this.pages['default'].entryServers.push(fileName);
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
getDiskPath(path) {
|
|
284
|
+
if (typeof path === 'string') {
|
|
285
|
+
if (!path) {
|
|
286
|
+
return this.rootDir;
|
|
287
|
+
}
|
|
288
|
+
return resolve(this.rootDir, path);
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
291
|
+
return path;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
export const buildInit = (program) => {
|
|
296
|
+
program
|
|
297
|
+
.command('build')
|
|
298
|
+
.description('build vite文件')
|
|
299
|
+
.option('-t, --type <char>', '构建方式:1=根据配置文件自动构建,2=自动寻找viewDir文件夹下的index.html和entry-server.js进行构建', '1')
|
|
300
|
+
.option('--config <char>', '配置文件夹/配置文件', 'src/config')
|
|
301
|
+
.option('--outDir <char>', '编译输出目录默认为,默认为staticFile.dirs[staticFileKey].dir或public')
|
|
302
|
+
.option('--viteConfigFile <char>', 'views dir 默认 viteView.viteConfigFile或view')
|
|
303
|
+
.option('--viewDir <char>', 'views dir 默认 view')
|
|
304
|
+
.option('--prefix <char>', '静态缓存前缀 默认为staticFile.dirs[staticFileKey].prefix或/public')
|
|
305
|
+
.option('--outPrefix <char>', '编译输出前缀 默认为viteView.outPrefix或html')
|
|
306
|
+
.option('--staticFileKey <char>', '使用的staticFile.dirs的key 默认为viteView.staticFileKey或default')
|
|
307
|
+
.option('-r --root <char>', 'vite config 的rootdir 必须是相对于viewDir的相对路径')
|
|
308
|
+
.option('-m, --module <char>', 'env环境变量', 'production')
|
|
309
|
+
.action(async (options) => {
|
|
310
|
+
setEnv(options.module);
|
|
311
|
+
const build = new Build();
|
|
312
|
+
build.options = options;
|
|
313
|
+
await build.formatOptions();
|
|
314
|
+
await build.setFile();
|
|
315
|
+
await build.run();
|
|
316
|
+
});
|
|
317
|
+
};
|
|
318
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2NvbW1hbmRlcnMvYnVpbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGtCQUFrQixFQUFFLEtBQUssSUFBSSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUIsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxVQUFVLE1BQU0sYUFBYSxDQUFDO0FBRXJDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFDN0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLG1CQUFtQjtBQUNuQixNQUFNLFdBQVcsR0FBRyxLQUFLLFdBQ3ZCLFFBQWdCLEVBQ2hCLFFBQXFEO0lBRXJELE1BQU0sS0FBSyxHQUFHLE1BQU0sVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQixhQUFhO1FBQ2IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDOUMsNkJBQTZCO1FBQzdCLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkMsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUNuQixNQUFNLFFBQVEs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
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { buildInit } from './build.js';
|
|
2
|
+
export const init = (program) => {
|
|
3
|
+
buildInit(program);
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpL2NvbW1hbmRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2QyxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFlLEVBQUMsRUFBRTtJQUNyQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDckIsQ0FBQyxDQUFBIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { init } from './commanders/index.js';
|
|
3
|
+
import { readFileSync } from 'node:fs';
|
|
4
|
+
const program = new Command();
|
|
5
|
+
const { version } = JSON.parse(readFileSync(import.meta.dirname + '/../../package.json').toString());
|
|
6
|
+
program
|
|
7
|
+
.name('meadmin')
|
|
8
|
+
.description('CLI of MEADMIN')
|
|
9
|
+
.version(version);
|
|
10
|
+
init(program);
|
|
11
|
+
program.parse();
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztBQUM5QixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDNUIsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLHFCQUFxQixDQUFDLENBQUMsUUFBUSxFQUFFLENBQ3JFLENBQUM7QUFDRixPQUFPO0tBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQztLQUNmLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztLQUM3QixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ2QsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDIn0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export const viteView = {
|
|
2
|
+
views: {},
|
|
3
|
+
outPrefix: 'html',
|
|
4
|
+
staticFileKey: 'default',
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2NvbmZpZy5kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBbUI7SUFDdEMsS0FBSyxFQUFFLEVBQTZCO0lBQ3BDLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLGFBQWEsRUFBRSxTQUFTO0NBQ3pCLENBQUMifQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as view from '@midwayjs/view';
|
|
2
|
+
import * as koa from '@midwayjs/koa';
|
|
3
|
+
import { ViteViewConfig } from './interface.js';
|
|
4
|
+
import { ViteService } from './service/vite.service.js';
|
|
5
|
+
export declare class MidwayViteViewConfiguration {
|
|
6
|
+
viewManager: view.ViewManager;
|
|
7
|
+
app: koa.Application;
|
|
8
|
+
viteViewConfig: ViteViewConfig;
|
|
9
|
+
viteService: ViteService;
|
|
10
|
+
onReady(): Promise<void>;
|
|
11
|
+
onServerReady(): Promise<void>;
|
|
12
|
+
onStop(): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { ViteMiddleware } from './middware/vite.middware.js';
|
|
11
|
+
import { Configuration, Inject, App, Config } from '@midwayjs/core';
|
|
12
|
+
import * as DefaultConfig from './config/config.default.js';
|
|
13
|
+
import * as view from '@midwayjs/view';
|
|
14
|
+
import { ViteView } from './lib/view.js';
|
|
15
|
+
import * as koa from '@midwayjs/koa';
|
|
16
|
+
import * as staticFile from '@midwayjs/static-file';
|
|
17
|
+
import { ViteService } from './service/vite.service.js';
|
|
18
|
+
let MidwayViteViewConfiguration = class MidwayViteViewConfiguration {
|
|
19
|
+
viewManager;
|
|
20
|
+
app;
|
|
21
|
+
viteViewConfig;
|
|
22
|
+
viteService;
|
|
23
|
+
async onReady() {
|
|
24
|
+
if (this.viteViewConfig.prod === false ||
|
|
25
|
+
!['prod', 'production'].includes(this.app.getEnv())) {
|
|
26
|
+
this.app.useMiddleware(ViteMiddleware);
|
|
27
|
+
}
|
|
28
|
+
this.viewManager.use('viteView', ViteView);
|
|
29
|
+
}
|
|
30
|
+
async onServerReady() {
|
|
31
|
+
if (this.viteViewConfig.prod === false ||
|
|
32
|
+
!['prod', 'production'].includes(this.app.getEnv())) {
|
|
33
|
+
this.viteService.restoreVite();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async onStop() {
|
|
37
|
+
this.viteService.catchViteAddress();
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
__decorate([
|
|
41
|
+
Inject(),
|
|
42
|
+
__metadata("design:type", view.ViewManager)
|
|
43
|
+
], MidwayViteViewConfiguration.prototype, "viewManager", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
App(),
|
|
46
|
+
__metadata("design:type", Object)
|
|
47
|
+
], MidwayViteViewConfiguration.prototype, "app", void 0);
|
|
48
|
+
__decorate([
|
|
49
|
+
Config('viteView'),
|
|
50
|
+
__metadata("design:type", Object)
|
|
51
|
+
], MidwayViteViewConfiguration.prototype, "viteViewConfig", void 0);
|
|
52
|
+
__decorate([
|
|
53
|
+
Inject(),
|
|
54
|
+
__metadata("design:type", ViteService)
|
|
55
|
+
], MidwayViteViewConfiguration.prototype, "viteService", void 0);
|
|
56
|
+
MidwayViteViewConfiguration = __decorate([
|
|
57
|
+
Configuration({
|
|
58
|
+
namespace: 'viteView',
|
|
59
|
+
imports: [view, staticFile],
|
|
60
|
+
importConfigs: [
|
|
61
|
+
{
|
|
62
|
+
default: DefaultConfig,
|
|
63
|
+
},
|
|
64
|
+
],
|
|
65
|
+
})
|
|
66
|
+
], MidwayViteViewConfiguration);
|
|
67
|
+
export { MidwayViteViewConfiguration };
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxLQUFLLGFBQWEsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEtBQUssSUFBSSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxLQUFLLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxLQUFLLFVBQVUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFXakQsSUFBTSwyQkFBMkIsR0FBakMsTUFBTSwyQkFBMkI7SUFFdEMsV0FBVyxDQUFtQjtJQUc5QixHQUFHLENBQWtCO0lBR3JCLGNBQWMsQ0FBaUI7SUFHL0IsV0FBVyxDQUFjO0lBRXpCLEtBQUssQ0FBQyxPQUFPO1FBQ1gsSUFDRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksS0FBSyxLQUFLO1lBQ2xDLENBQUMsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFDbkQsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNELEtBQUssQ0FBQyxhQUFhO1FBQ2pCLElBQ0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEtBQUssS0FBSztZQUNsQyxDQUFDLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQ25ELENBQUM7WUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU07UUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDdEMsQ0FBQztDQUNGLENBQUE7QUFoQ0M7SUFEQyxNQUFNLEVBQUU7OEJBQ0ksSUFBSSxDQUFDLFdBQVc7Z0VBQUM7QUFHOUI7SUFEQyxHQUFHLEVBQUU7O3dEQUNlO0FBR3JCO0lBREMsTUFBTSxDQUFDLFVBQVUsQ0FBQzs7bUVBQ1k7QUFHL0I7SUFEQyxNQUFNLEVBQUU7OEJBQ0ksV0FBVztnRUFBQztBQVhkLDJCQUEyQjtJQVR2QyxhQUFhLENBQUM7UUFDYixTQUFTLEVBQUUsVUFBVTtRQUNyQixPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDO1FBQzNCLGFBQWEsRUFBRTtZQUNiO2dCQUNFLE9BQU8sRUFBRSxhQUFhO2FBQ3ZCO1NBQ0Y7S0FDRixDQUFDO0dBQ1csMkJBQTJCLENBa0N2QyJ9
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { MidwayViteViewConfiguration as Configuration } from './configuration.js';
|
|
2
|
+
export { ViteView } from './lib/view.js';
|
|
3
|
+
export { ViteService } from './service/vite.service.js';
|
|
4
|
+
export { ViteViewConfig } from './interface.js';
|
|
5
|
+
export { ViteMiddleware } from './middware/vite.middware.js';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { MidwayViteViewConfiguration as Configuration } from './configuration.js';
|
|
2
|
+
export { ViteView } from './lib/view.js';
|
|
3
|
+
export { ViteService } from './service/vite.service.js';
|
|
4
|
+
export { ViteMiddleware } from './middware/vite.middware.js';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDJCQUEyQixJQUFJLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXhELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQyJ9
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface ViteViewConfig {
|
|
2
|
+
prod?: boolean;
|
|
3
|
+
views: Record<string, string | {
|
|
4
|
+
entryServer?: string;
|
|
5
|
+
viteConfigFile?: string;
|
|
6
|
+
root?: string;
|
|
7
|
+
}>;
|
|
8
|
+
outPrefix: string;
|
|
9
|
+
viteConfigFile?: string;
|
|
10
|
+
staticFileKey: string;
|
|
11
|
+
root?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface CommandOptions {
|
|
14
|
+
[x: string]: any;
|
|
15
|
+
type: 1 | 2;
|
|
16
|
+
config: string;
|
|
17
|
+
outDir: string;
|
|
18
|
+
viteConfigFile: string;
|
|
19
|
+
viewDir: string;
|
|
20
|
+
prefix: string;
|
|
21
|
+
outPrefix: string;
|
|
22
|
+
staticFileKey: string;
|
|
23
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ViteService } from '../service/vite.service.js';
|
|
2
|
+
import { StaticFileOptions } from '@midwayjs/static-file';
|
|
3
|
+
import { IViewEngine, RenderOptions } from '@midwayjs/view';
|
|
4
|
+
import { Application, Context } from '@midwayjs/koa';
|
|
5
|
+
import { ViteViewConfig } from '../interface.js';
|
|
6
|
+
export declare class ViteView implements IViewEngine {
|
|
7
|
+
staticFileConfig: StaticFileOptions;
|
|
8
|
+
viteViewConfig: ViteViewConfig;
|
|
9
|
+
app: Application;
|
|
10
|
+
ctx: Context;
|
|
11
|
+
vite: ViteService;
|
|
12
|
+
private prodPath;
|
|
13
|
+
private prod;
|
|
14
|
+
private root;
|
|
15
|
+
getSsrHtml(indexName: string, entryServerUrl: string, url: string, assign: object | undefined, viteConfigFile: string): Promise<any>;
|
|
16
|
+
getClientHtml(indexName: any, assign: object | undefined, url: string, viteConfigFile: string): Promise<string>;
|
|
17
|
+
render(name: string, locals?: Record<string, any>, options?: RenderOptions): Promise<any>;
|
|
18
|
+
renderString(name: string, locals?: Record<string, any>, options?: RenderOptions): Promise<any>;
|
|
19
|
+
}
|
package/dist/lib/view.js
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { ViteService } from '../service/vite.service.js';
|
|
11
|
+
import { Provide, Config, App, Inject } from '@midwayjs/core';
|
|
12
|
+
import * as fs from 'fs';
|
|
13
|
+
import * as path from 'path';
|
|
14
|
+
let ViteView = class ViteView {
|
|
15
|
+
staticFileConfig;
|
|
16
|
+
viteViewConfig;
|
|
17
|
+
app;
|
|
18
|
+
ctx;
|
|
19
|
+
vite;
|
|
20
|
+
prodPath;
|
|
21
|
+
prod;
|
|
22
|
+
root = '';
|
|
23
|
+
async getSsrHtml(indexName, entryServerUrl, url, assign, viteConfigFile) {
|
|
24
|
+
const vite = await this.vite.createVite(viteConfigFile);
|
|
25
|
+
try {
|
|
26
|
+
let template, render, manifest = {};
|
|
27
|
+
template = fs.readFileSync(indexName, 'utf-8');
|
|
28
|
+
if (!this.prod) {
|
|
29
|
+
// always read fresh template in dev
|
|
30
|
+
template = await vite.transformIndexHtml(url, template);
|
|
31
|
+
render = (await vite.ssrLoadModule(entryServerUrl)).render;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
manifest = require(path.resolve(this.prodPath, this.root, 'ssr-manifest.json'));
|
|
35
|
+
render = require(entryServerUrl).render;
|
|
36
|
+
}
|
|
37
|
+
const context = { cookies: this.ctx.cookies, request: this.ctx.request };
|
|
38
|
+
const [appHtml, preloadLinks, teleports] = await render(url, manifest, context);
|
|
39
|
+
if (context['url']) {
|
|
40
|
+
// Somewhere a `<Redirect>` was rendered
|
|
41
|
+
return this.ctx.redirect(context['url']);
|
|
42
|
+
}
|
|
43
|
+
let html = template
|
|
44
|
+
.replace('<!--preload-links-->', preloadLinks)
|
|
45
|
+
.replace('<!--app-html-->', appHtml)
|
|
46
|
+
.replace(/(\n|\r\n)\s*<!--app-teleports-->/, teleports)
|
|
47
|
+
.replace('<html', '<html data-ssr="true"')
|
|
48
|
+
.replace(/<!--ssr-no-content-start-->((?!((<!--ssr-no-content-start-->)|(<!--ssr-no-content-end-->))).)*<!--ssr-no-content-end-->/g, '');
|
|
49
|
+
if (assign) {
|
|
50
|
+
for (const [key, value] of Object.entries(assign)) {
|
|
51
|
+
html = html.replace(new RegExp(`{{${key}}}`, 'g'), value);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return html;
|
|
55
|
+
}
|
|
56
|
+
catch (e) {
|
|
57
|
+
vite.ssrFixStacktrace(e);
|
|
58
|
+
this.ctx.logger.error('服务端渲染失败,执行客户端渲染逻辑', e);
|
|
59
|
+
return await this.getClientHtml(indexName, assign, url, viteConfigFile);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
async getClientHtml(indexName, assign, url, viteConfigFile) {
|
|
63
|
+
let html = fs
|
|
64
|
+
.readFileSync(indexName, 'utf-8')
|
|
65
|
+
.replace('<!--preload-links-->', '')
|
|
66
|
+
.replace('<!--app-html-->', '');
|
|
67
|
+
if (assign) {
|
|
68
|
+
for (const [key, value] of Object.entries(assign)) {
|
|
69
|
+
html = html.replace(new RegExp(`{{${key}}}`, 'g'), value);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return this.prod
|
|
73
|
+
? html
|
|
74
|
+
: await (await this.vite.createVite(viteConfigFile)).transformIndexHtml(url, html);
|
|
75
|
+
}
|
|
76
|
+
async render(name, locals, options) {
|
|
77
|
+
return (locals.ctx.body = await this.renderString(name, locals, options));
|
|
78
|
+
}
|
|
79
|
+
async renderString(name, locals, options) {
|
|
80
|
+
let tpl = options.name;
|
|
81
|
+
if (this.viteViewConfig.prod !== undefined) {
|
|
82
|
+
this.prod = this.viteViewConfig.prod;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
this.prod = ['prod', 'production'].includes(this.app.getEnv());
|
|
86
|
+
}
|
|
87
|
+
let entry = '';
|
|
88
|
+
const entryInfo = this.viteViewConfig.views[options.name];
|
|
89
|
+
let viteConfigFile = this.viteViewConfig.viteConfigFile;
|
|
90
|
+
if (typeof entryInfo === 'object') {
|
|
91
|
+
entry = entryInfo.entryServer;
|
|
92
|
+
viteConfigFile = entryInfo.viteConfigFile ?? viteConfigFile;
|
|
93
|
+
this.root = entryInfo.root ?? '';
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
entry = entryInfo;
|
|
97
|
+
}
|
|
98
|
+
if (this.prod) {
|
|
99
|
+
this.prodPath =
|
|
100
|
+
this.staticFileConfig.dirs[this.viteViewConfig.staticFileKey].dir +
|
|
101
|
+
`/${this.viteViewConfig.outPrefix}`;
|
|
102
|
+
tpl = path.resolve(this.prodPath, tpl);
|
|
103
|
+
entry =
|
|
104
|
+
locals.ssr !== false && entry
|
|
105
|
+
? path
|
|
106
|
+
.resolve(this.prodPath, entry)
|
|
107
|
+
.replace(/(\.[jt]sx)|(\.ts)$/, '.js')
|
|
108
|
+
: '';
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
tpl = path.resolve(options.root, tpl);
|
|
112
|
+
entry =
|
|
113
|
+
locals.ssr !== false && entry ? path.resolve(options.root, entry) : '';
|
|
114
|
+
}
|
|
115
|
+
if (entry) {
|
|
116
|
+
return await this.getSsrHtml(tpl, entry, locals.ctx.originalUrl, locals['assign'], viteConfigFile);
|
|
117
|
+
}
|
|
118
|
+
return await this.getClientHtml(tpl, locals['assign'], locals.ctx.originalUrl, viteConfigFile);
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
__decorate([
|
|
122
|
+
Config('staticFile'),
|
|
123
|
+
__metadata("design:type", Object)
|
|
124
|
+
], ViteView.prototype, "staticFileConfig", void 0);
|
|
125
|
+
__decorate([
|
|
126
|
+
Config('viteView'),
|
|
127
|
+
__metadata("design:type", Object)
|
|
128
|
+
], ViteView.prototype, "viteViewConfig", void 0);
|
|
129
|
+
__decorate([
|
|
130
|
+
App(),
|
|
131
|
+
__metadata("design:type", Object)
|
|
132
|
+
], ViteView.prototype, "app", void 0);
|
|
133
|
+
__decorate([
|
|
134
|
+
Inject(),
|
|
135
|
+
__metadata("design:type", Object)
|
|
136
|
+
], ViteView.prototype, "ctx", void 0);
|
|
137
|
+
__decorate([
|
|
138
|
+
Inject(),
|
|
139
|
+
__metadata("design:type", ViteService)
|
|
140
|
+
], ViteView.prototype, "vite", void 0);
|
|
141
|
+
ViteView = __decorate([
|
|
142
|
+
Provide()
|
|
143
|
+
], ViteView);
|
|
144
|
+
export { ViteView };
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvdmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzlELE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBS3RCLElBQU0sUUFBUSxHQUFkLE1BQU0sUUFBUTtJQUVuQixnQkFBZ0IsQ0FBb0I7SUFHcEMsY0FBYyxDQUFpQjtJQUcvQixHQUFHLENBQWM7SUFHakIsR0FBRyxDQUFVO0lBR2IsSUFBSSxDQUFjO0lBRVYsUUFBUSxDQUFTO0lBQ2pCLElBQUksQ0FBVTtJQUNkLElBQUksR0FBRyxFQUFFLENBQUM7SUFFbEIsS0FBSyxDQUFDLFVBQVUsQ0FDZCxTQUFpQixFQUNqQixjQUFzQixFQUN0QixHQUFXLEVBQ1gsTUFBMEIsRUFDMUIsY0FBc0I7UUFFdEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUM7WUFDSCxJQUFJLFFBQVEsRUFDVixNQUFNLEVBQ04sUUFBUSxHQUFHLEVBQUUsQ0FBQztZQUNoQixRQUFRLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFFL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDZixvQ0FBb0M7Z0JBQ3BDLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ3hELE1BQU0sR0FBRyxDQUFDLE1BQU0sSUFB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
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IMiddleware } from '@midwayjs/core';
|
|
2
|
+
import { NextFunction, Context } from '@midwayjs/koa';
|
|
3
|
+
import { ViteService } from '../service/vite.service.js';
|
|
4
|
+
export declare class ViteMiddleware implements IMiddleware<Context, NextFunction> {
|
|
5
|
+
viteService: ViteService;
|
|
6
|
+
private viteMiddlewareArr;
|
|
7
|
+
init(): Promise<void>;
|
|
8
|
+
resolve(): (ctx: Context, next: NextFunction) => Promise<any>;
|
|
9
|
+
static getName(): string;
|
|
10
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { Middleware, Init, Inject, HttpServerResponse } from '@midwayjs/core';
|
|
11
|
+
import { ViteService } from '../service/vite.service.js';
|
|
12
|
+
let ViteMiddleware = class ViteMiddleware {
|
|
13
|
+
viteService;
|
|
14
|
+
viteMiddlewareArr = [];
|
|
15
|
+
async init() {
|
|
16
|
+
this.viteMiddlewareArr = await this.viteService.getViteMiddlewareArr();
|
|
17
|
+
}
|
|
18
|
+
resolve() {
|
|
19
|
+
return async (ctx, next) => {
|
|
20
|
+
if (ctx.originalUrl === '/.well-known/appspecific/com.chrome.devtools.json') {
|
|
21
|
+
return new HttpServerResponse(ctx).status(404);
|
|
22
|
+
}
|
|
23
|
+
for (let i = 0; i < this.viteMiddlewareArr.length; i++) {
|
|
24
|
+
if (ctx.originalUrl.startsWith(this.viteMiddlewareArr[i].prefix)) {
|
|
25
|
+
return await this.viteMiddlewareArr[i].middleware(ctx, next);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return await next();
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
static getName() {
|
|
32
|
+
return 'viteView';
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
__decorate([
|
|
36
|
+
Inject(),
|
|
37
|
+
__metadata("design:type", ViteService)
|
|
38
|
+
], ViteMiddleware.prototype, "viteService", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
Init(),
|
|
41
|
+
__metadata("design:type", Function),
|
|
42
|
+
__metadata("design:paramtypes", []),
|
|
43
|
+
__metadata("design:returntype", Promise)
|
|
44
|
+
], ViteMiddleware.prototype, "init", null);
|
|
45
|
+
ViteMiddleware = __decorate([
|
|
46
|
+
Middleware()
|
|
47
|
+
], ViteMiddleware);
|
|
48
|
+
export { ViteMiddleware };
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5taWRkd2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkd2FyZS92aXRlLm1pZGR3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWUsSUFBSSxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNGLE9BQU8sRUFBRSxXQUFXLEVBQWlCLE1BQU0sNEJBQTRCLENBQUM7QUFHakUsSUFBTSxjQUFjLEdBQXBCLE1BQU0sY0FBYztJQUV6QixXQUFXLENBQWM7SUFFakIsaUJBQWlCLEdBQWtCLEVBQUUsQ0FBQztJQUd4QyxBQUFOLEtBQUssQ0FBQyxJQUFJO1FBQ1IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ3pFLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxLQUFLLEVBQUUsR0FBWSxFQUFFLElBQWtCLEVBQUUsRUFBRTtZQUNoRCxJQUFJLEdBQUcsQ0FBQyxXQUFXLEtBQUssbURBQW1ELEVBQUUsQ0FBQztnQkFDNUUsT0FBUSxJQUFJLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsRCxDQUFDO1lBQ0QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDdkQsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDakUsT0FBTyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUMvRCxDQUFDO1lBQ0gsQ0FBQztZQUNELE9BQU8sTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0NBQ0YsQ0FBQTtBQTFCQztJQURDLE1BQU0sRUFBRTs4QkFDSSxXQUFXO21EQUFDO0FBS25CO0lBREwsSUFBSSxFQUFFOzs7OzBDQUdOO0FBVFUsY0FBYztJQUQxQixVQUFVLEVBQUU7R0FDQSxjQUFjLENBNEIxQiJ9
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ViteViewConfig } from '../interface.js';
|
|
2
|
+
import { MidwayConfig } from '@midwayjs/core';
|
|
3
|
+
import { ViteDevServer, HmrOptions } from 'vite';
|
|
4
|
+
import * as koa from '@midwayjs/koa';
|
|
5
|
+
export type MiddlewareArr = {
|
|
6
|
+
middleware: any;
|
|
7
|
+
prefix: string;
|
|
8
|
+
}[];
|
|
9
|
+
export declare class ViteService {
|
|
10
|
+
viteViewConfig: ViteViewConfig;
|
|
11
|
+
viewConfig: MidwayConfig['view'];
|
|
12
|
+
koaApp: koa.Application;
|
|
13
|
+
private vite;
|
|
14
|
+
private middlewareArr;
|
|
15
|
+
createVite(configFile: string, hmr?: HmrOptions | boolean): Promise<ViteDevServer>;
|
|
16
|
+
getMiddlewareIndex(prefix: string): number;
|
|
17
|
+
getViteMiddlewareArr(): Promise<MiddlewareArr>;
|
|
18
|
+
getCatchFile(): string;
|
|
19
|
+
catchViteAddress(): void;
|
|
20
|
+
restoreVite(): void;
|
|
21
|
+
}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { Config, Provide, Scope, ScopeEnum, App, } from '@midwayjs/core';
|
|
11
|
+
import { createServer, normalizePath } from 'vite';
|
|
12
|
+
import { getPort } from '../utils/index.js';
|
|
13
|
+
import c2k from 'koa2-connect';
|
|
14
|
+
import * as path from 'node:path';
|
|
15
|
+
import * as koa from '@midwayjs/koa';
|
|
16
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
17
|
+
let cachePostfix = '';
|
|
18
|
+
const vitePlugin = (viewRoot, appDir) => ({
|
|
19
|
+
name: 'vite-plugin-midway-vite-view',
|
|
20
|
+
async config(config) {
|
|
21
|
+
if (!config.server.hmr) {
|
|
22
|
+
const port = await getPort(24678);
|
|
23
|
+
config.server.hmr = {
|
|
24
|
+
clientPort: port,
|
|
25
|
+
port: port,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
if (!config.cacheDir) {
|
|
29
|
+
config.cacheDir = path.resolve(appDir, `node_modules/.vite${cachePostfix}`);
|
|
30
|
+
cachePostfix = cachePostfix + '_';
|
|
31
|
+
}
|
|
32
|
+
if (!config.base) {
|
|
33
|
+
if (!config.root) {
|
|
34
|
+
throw new Error('vite config 中必须配置正确的base或root参数');
|
|
35
|
+
}
|
|
36
|
+
config.base = normalizePath('/' +
|
|
37
|
+
path.relative(viewRoot, path.resolve(process.cwd(), config.root)) +
|
|
38
|
+
'/');
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
let ViteService = class ViteService {
|
|
43
|
+
viteViewConfig;
|
|
44
|
+
viewConfig;
|
|
45
|
+
koaApp;
|
|
46
|
+
vite = {};
|
|
47
|
+
middlewareArr = [];
|
|
48
|
+
//生成vite server
|
|
49
|
+
async createVite(configFile, hmr) {
|
|
50
|
+
if (!this.vite[configFile]) {
|
|
51
|
+
this.vite[configFile] = await createServer({
|
|
52
|
+
configFile,
|
|
53
|
+
appType: 'custom',
|
|
54
|
+
plugins: [
|
|
55
|
+
vitePlugin(this.viewConfig.rootDir.default, this.koaApp.getAppDir()),
|
|
56
|
+
],
|
|
57
|
+
server: {
|
|
58
|
+
middlewareMode: true,
|
|
59
|
+
watch: {
|
|
60
|
+
// During tests we edit the files too fast and sometimes chokidar
|
|
61
|
+
// misses change events, so enforce polling for consistency
|
|
62
|
+
usePolling: true,
|
|
63
|
+
interval: 100,
|
|
64
|
+
},
|
|
65
|
+
hmr: hmr
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return this.vite[configFile];
|
|
70
|
+
}
|
|
71
|
+
getMiddlewareIndex(prefix) {
|
|
72
|
+
for (let i = 0; i < this.middlewareArr.length; i++) {
|
|
73
|
+
if (this.middlewareArr[i].prefix.length <= prefix.length) {
|
|
74
|
+
return i;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return 0;
|
|
78
|
+
}
|
|
79
|
+
//获取全部vite中间件数组
|
|
80
|
+
async getViteMiddlewareArr() {
|
|
81
|
+
if (this.middlewareArr.length) {
|
|
82
|
+
return this.middlewareArr;
|
|
83
|
+
}
|
|
84
|
+
const configSet = new Set();
|
|
85
|
+
for (const [, view] of Object.entries(this.viteViewConfig.views)) {
|
|
86
|
+
if (typeof view === 'object' && !configSet.has(view.viteConfigFile)) {
|
|
87
|
+
const viteServer = await this.createVite(view.viteConfigFile);
|
|
88
|
+
this.middlewareArr.splice(this.getMiddlewareIndex(viteServer.config.base), 0, {
|
|
89
|
+
middleware: c2k(viteServer.middlewares),
|
|
90
|
+
prefix: viteServer.config.base,
|
|
91
|
+
});
|
|
92
|
+
configSet.add(view.viteConfigFile);
|
|
93
|
+
}
|
|
94
|
+
else if (!configSet.has(undefined)) {
|
|
95
|
+
const viteServer = await this.createVite(this.viteViewConfig.viteConfigFile);
|
|
96
|
+
this.middlewareArr.splice(this.getMiddlewareIndex(viteServer.config.base), 0, {
|
|
97
|
+
middleware: c2k(viteServer.middlewares),
|
|
98
|
+
prefix: viteServer.config.base,
|
|
99
|
+
});
|
|
100
|
+
configSet.add(undefined);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return this.middlewareArr;
|
|
104
|
+
}
|
|
105
|
+
//获取catch文件地址
|
|
106
|
+
getCatchFile() {
|
|
107
|
+
let catchPath = path.resolve(process.cwd(), 'node_modules/');
|
|
108
|
+
if (!existsSync(catchPath)) {
|
|
109
|
+
mkdirSync(catchPath);
|
|
110
|
+
}
|
|
111
|
+
catchPath = path.resolve(catchPath, '.meadmin/'); //meadmin缓存文件夹
|
|
112
|
+
if (!existsSync(catchPath)) {
|
|
113
|
+
mkdirSync(catchPath);
|
|
114
|
+
}
|
|
115
|
+
catchPath = path.resolve(catchPath, 'temp/'); //临时缓存关闭后清除
|
|
116
|
+
if (!existsSync(catchPath)) {
|
|
117
|
+
mkdirSync(catchPath);
|
|
118
|
+
}
|
|
119
|
+
return path.resolve(catchPath, 'midway_vite_view_port.json');
|
|
120
|
+
}
|
|
121
|
+
//缓存vite地址
|
|
122
|
+
catchViteAddress() {
|
|
123
|
+
const catchPath = this.getCatchFile();
|
|
124
|
+
const json = {};
|
|
125
|
+
Object.keys(this.vite).forEach(key => {
|
|
126
|
+
json[key] = {
|
|
127
|
+
time: new Date(),
|
|
128
|
+
hmr: this.vite[key].config.server.hmr
|
|
129
|
+
};
|
|
130
|
+
});
|
|
131
|
+
writeFileSync(catchPath, JSON.stringify(json), 'utf8');
|
|
132
|
+
}
|
|
133
|
+
//恢复缓存的vite
|
|
134
|
+
restoreVite() {
|
|
135
|
+
const catchPath = this.getCatchFile();
|
|
136
|
+
if (existsSync(catchPath)) {
|
|
137
|
+
const json = JSON.parse(readFileSync(catchPath, 'utf8'));
|
|
138
|
+
json && Object.keys(json).forEach(key => {
|
|
139
|
+
this.createVite(key, json[key].hmr);
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
__decorate([
|
|
145
|
+
Config('viteView'),
|
|
146
|
+
__metadata("design:type", Object)
|
|
147
|
+
], ViteService.prototype, "viteViewConfig", void 0);
|
|
148
|
+
__decorate([
|
|
149
|
+
Config('view'),
|
|
150
|
+
__metadata("design:type", Object)
|
|
151
|
+
], ViteService.prototype, "viewConfig", void 0);
|
|
152
|
+
__decorate([
|
|
153
|
+
App(),
|
|
154
|
+
__metadata("design:type", Object)
|
|
155
|
+
], ViteService.prototype, "koaApp", void 0);
|
|
156
|
+
ViteService = __decorate([
|
|
157
|
+
Provide(),
|
|
158
|
+
Scope(ScopeEnum.Singleton)
|
|
159
|
+
], ViteService);
|
|
160
|
+
export { ViteService };
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidml0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2Uvdml0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUNBLE9BQU8sRUFDTCxNQUFNLEVBQ04sT0FBTyxFQUNQLEtBQUssRUFDTCxTQUFTLEVBQ1QsR0FBRyxHQUVKLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLFlBQVksRUFBaUIsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1QyxPQUFPLEdBQUcsTUFBTSxjQUFjLENBQUM7QUFDL0IsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxLQUFLLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUU3RSxJQUFJLFlBQVksR0FBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxRQUFnQixFQUFFLE1BQWMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4RCxJQUFJLEVBQUUsOEJBQThCO0lBQ3BDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBVztRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksR0FBRyxNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRztnQkFDbEIsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLElBQUksRUFBRSxJQUFJO2FBQ1gsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sQ0FBQyxRQUFRLEdBQUcs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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const setEnv: (node_env?: string) => void;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import dotenv from 'dotenv';
|
|
2
|
+
export const setEnv = (node_env) => {
|
|
3
|
+
if (node_env) {
|
|
4
|
+
process.env.NODE_ENV = node_env;
|
|
5
|
+
}
|
|
6
|
+
// 根据当前环境加载不同的 .env 文件
|
|
7
|
+
if (process.env.NODE_ENV) {
|
|
8
|
+
dotenv.config({
|
|
9
|
+
path: ['.env', `.env.${process.env.NODE_ENV}`],
|
|
10
|
+
override: true,
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
dotenv.config({
|
|
15
|
+
path: ['.env'],
|
|
16
|
+
override: true,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2Vudi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLENBQUMsUUFBZ0IsRUFBQyxFQUFFO0lBQ3hDLElBQUcsUUFBUSxFQUFDLENBQUM7UUFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDbEMsQ0FBQztJQUNELHNCQUFzQjtJQUN0QixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUNaLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDOUMsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDWixJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUM7WUFDZCxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7QUFDSCxDQUFDLENBQUEifQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as net from 'net';
|
|
2
|
+
export const getCurrentEnvironment = () => {
|
|
3
|
+
return process.env['MIDWAY_SERVER_ENV'] || process.env['NODE_ENV'] || 'prod';
|
|
4
|
+
};
|
|
5
|
+
export function get(object, path) {
|
|
6
|
+
const keys = path.split('.');
|
|
7
|
+
let result = object;
|
|
8
|
+
keys.forEach(key => {
|
|
9
|
+
result = result[key] ?? '';
|
|
10
|
+
});
|
|
11
|
+
return result;
|
|
12
|
+
}
|
|
13
|
+
//获取可用端口号
|
|
14
|
+
export function getPort(port) {
|
|
15
|
+
return new Promise(resolve => {
|
|
16
|
+
const server = net.createServer().on('error', () => {
|
|
17
|
+
getPort(++port).then(resolve);
|
|
18
|
+
});
|
|
19
|
+
server.listen(port, () => {
|
|
20
|
+
server.close(() => resolve(port));
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFDM0IsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsR0FBRyxFQUFFO0lBQ3hDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksTUFBTSxDQUFDO0FBQy9FLENBQUMsQ0FBQztBQUVGLE1BQU0sVUFBVSxHQUFHLENBQUMsTUFBVyxFQUFFLElBQVk7SUFDM0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QixJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFFcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNqQixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFTO0FBQ1QsTUFBTSxVQUFVLE9BQU8sQ0FBQyxJQUFZO0lBQ2xDLE9BQU8sSUFBSSxPQUFPLENBQVMsT0FBTyxDQUFDLEVBQUU7UUFDbkMsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO1lBQ2pELE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRTtZQUN2QixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIn0=
|
package/index.d.ts
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@meadmin/midway-vite-view",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "midway vite ssr view vue react, midway 的 vite 服务端渲染和客户端渲染组件,支持vue3 react,服务端渲染失败后会自动执行客户端渲染。 Midway's Vite server rendering and client rendering components support vue3 React, Client rendering is automatically performed when server rendering fails。",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"typings": "index.d.ts",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"bin": {
|
|
9
|
+
"vite-view": "bin/vite-view.js"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "mwtsc --cleanOutDir",
|
|
13
|
+
"test": "mwtsc test --ts",
|
|
14
|
+
"cov": "mwtsc cov --ts",
|
|
15
|
+
"lint": "mwts check",
|
|
16
|
+
"lint:fix": "mwts fix",
|
|
17
|
+
"vueBuild": "vite bind"
|
|
18
|
+
},
|
|
19
|
+
"keywords": [
|
|
20
|
+
"midway view",
|
|
21
|
+
"vite",
|
|
22
|
+
"ssr",
|
|
23
|
+
"vue",
|
|
24
|
+
"react",
|
|
25
|
+
"midway ssr"
|
|
26
|
+
],
|
|
27
|
+
"bugs": {
|
|
28
|
+
"url": "https://github.com/meadmin-cn/meadmin"
|
|
29
|
+
},
|
|
30
|
+
"author": "yuntian001",
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "https://github.com/meadmin-cn/meadmin"
|
|
34
|
+
},
|
|
35
|
+
"files": [
|
|
36
|
+
"dist/*",
|
|
37
|
+
"index.d.ts",
|
|
38
|
+
"README.md"
|
|
39
|
+
],
|
|
40
|
+
"exports": {
|
|
41
|
+
".": "./dist/index.js"
|
|
42
|
+
},
|
|
43
|
+
"license": "MIT",
|
|
44
|
+
"dependencies": {
|
|
45
|
+
"@midwayjs/view": "^3.20.17",
|
|
46
|
+
"commander": "^14.0.0",
|
|
47
|
+
"extend2": "^1.0.1",
|
|
48
|
+
"koa2-connect": "^1.0.2"
|
|
49
|
+
},
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"@midwayjs/mock": "^3.0.0",
|
|
52
|
+
"@types/jest": "^27.4.0",
|
|
53
|
+
"@types/node": "*",
|
|
54
|
+
"compression": "^1.7.4",
|
|
55
|
+
"jest": "^27.5.1",
|
|
56
|
+
"mwts": "^1.3.0",
|
|
57
|
+
"typescript": "^5.9.2"
|
|
58
|
+
},
|
|
59
|
+
"peerDependencies": {
|
|
60
|
+
"@midwayjs/bootstrap": ">=3.20.11 3.x",
|
|
61
|
+
"@midwayjs/core": ">=3.20.11 3.x",
|
|
62
|
+
"@midwayjs/koa": ">=3.20.16 3.x",
|
|
63
|
+
"@midwayjs/static-file": ">=3.20.16 3.x",
|
|
64
|
+
"vite": ">=6.3.6 6.x"
|
|
65
|
+
}
|
|
66
|
+
}
|