@monkeyplus/flow 5.0.0-beta.1 → 5.0.0-beta.11
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/dist/core/runtime/nitro/renderer.mjs +2 -2
- package/dist/index.mjs +20 -9
- package/package.json +5 -6
- package/src/core/builder.ts +2 -1
- package/src/core/runtime/nitro/renderer.ts +3 -1
- package/src/core/vite/builder/dev-bundler.ts +2 -1
- package/src/core/vite/builder/index.ts +4 -0
- package/src/core/vite/builder/server.ts +1 -0
- package/src/core/vite/client/index.ts +8 -1
- package/src/pages/utils.ts +2 -2
- package/src/vite-client/module.ts +15 -4
|
@@ -10,12 +10,12 @@ export default eventHandler(async (event) => {
|
|
|
10
10
|
const chunks = { head: [], body: [] };
|
|
11
11
|
const generate = {};
|
|
12
12
|
const { page, locale, params, view } = flow.router.byUrl.lookup(url) || {};
|
|
13
|
+
if (!page)
|
|
14
|
+
return;
|
|
13
15
|
await flow.callHook("page:scripts", scripts);
|
|
14
16
|
if (view.bundle)
|
|
15
17
|
await flow.callHook("page:chunks", view.bundle, chunks);
|
|
16
18
|
const templateContext = {};
|
|
17
|
-
if (!page)
|
|
18
|
-
return;
|
|
19
19
|
const dynamyc = params?._;
|
|
20
20
|
const contextPage = {};
|
|
21
21
|
const utils = Object.assign({ getLocale: () => locale }, flow.app.utils);
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createHooks } from 'hookable';
|
|
2
2
|
import { dirname, resolve, normalize, join, isAbsolute, relative, extname } from 'pathe';
|
|
3
|
-
import { defineFlowModule, addPlugin, defineNuxtModule, logger, addTemplate, addPluginTemplate, addVitePlugin, useNuxt, resolveAlias,
|
|
3
|
+
import { defineFlowModule, addPlugin, defineNuxtModule, logger, addTemplate, addPluginTemplate, addVitePlugin, useNuxt, resolveAlias, resolveFilesFlow, nuxtCtx, installModule, loadFlowConfig, templateUtils, normalizeTemplate, compileTemplate, normalizePlugin, isIgnoredFlow } from '@monkeyplus/flow-kit';
|
|
4
4
|
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
5
5
|
import { defineUnimportPreset, createUnimport, toImports, scanDirExports } from 'unimport';
|
|
6
6
|
import { createUnplugin } from 'unplugin';
|
|
@@ -27,7 +27,7 @@ import { isExternal as isExternal$1, ExternalsDefaults } from 'externality';
|
|
|
27
27
|
import { createHash } from 'node:crypto';
|
|
28
28
|
import MagicString from 'magic-string';
|
|
29
29
|
|
|
30
|
-
const version = "5.0.0-beta.
|
|
30
|
+
const version = "5.0.0-beta.11";
|
|
31
31
|
|
|
32
32
|
let _distDir = dirname(fileURLToPath(import.meta.url));
|
|
33
33
|
if (_distDir.endsWith("chunks"))
|
|
@@ -225,7 +225,7 @@ async function resolvePagesRoutes() {
|
|
|
225
225
|
const nuxt = useNuxt();
|
|
226
226
|
const pagesDirs = [...new Set(nuxt.options._layers.map((layer) => resolve(layer.config.srcDir, layer.config.dir?.pages || "pages")))];
|
|
227
227
|
const allRoutes = (await Promise.all(pagesDirs.map(async (dir) => {
|
|
228
|
-
const files = await
|
|
228
|
+
const files = await resolveFilesFlow(dir, `**/*{${nuxt.options.extensions.join(",")}}`);
|
|
229
229
|
files.sort();
|
|
230
230
|
return files.map((file) => {
|
|
231
231
|
const segments = relative(dir, file).replace(new RegExp(`${escapeRE(extname(file))}$`), "").split("/").join("_");
|
|
@@ -306,11 +306,15 @@ const createClient = async (flow) => {
|
|
|
306
306
|
manifest: true
|
|
307
307
|
},
|
|
308
308
|
server: {
|
|
309
|
+
watch: {
|
|
310
|
+
ignored: ["**/.env/**", "**/.env*"]
|
|
311
|
+
},
|
|
309
312
|
middlewareMode: "ssr"
|
|
310
313
|
}
|
|
311
314
|
});
|
|
312
315
|
const _doReload = () => {
|
|
313
|
-
vite
|
|
316
|
+
if (vite)
|
|
317
|
+
vite?.ws?.send({ type: "full-reload" });
|
|
314
318
|
};
|
|
315
319
|
const doReload = debounce(_doReload, 50);
|
|
316
320
|
flow.hook("bundler:change", () => {
|
|
@@ -344,11 +348,14 @@ const viteModule = defineFlowModule({
|
|
|
344
348
|
async setup(_options, flow) {
|
|
345
349
|
const runtimeDir = resolve(distDir, "vite-client/runtime");
|
|
346
350
|
flow.options.alias["#viteManifest"] = resolve(flow.options.buildDir, "viteManifest.mjs");
|
|
351
|
+
let vite;
|
|
347
352
|
if (flow.options.dev) {
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
353
|
+
flow.hook("nitro:init", async (nitro) => {
|
|
354
|
+
vite = await createClient(flow);
|
|
355
|
+
nitro.options.devHandlers.push({
|
|
356
|
+
handler: vite.middlewares,
|
|
357
|
+
route: _options.route
|
|
358
|
+
});
|
|
352
359
|
});
|
|
353
360
|
addTemplate({
|
|
354
361
|
filename: "viteManifest.mjs",
|
|
@@ -848,7 +855,6 @@ function isExternal(opts, id) {
|
|
|
848
855
|
...ssrConfig.noExternal
|
|
849
856
|
],
|
|
850
857
|
external: [
|
|
851
|
-
...ssrConfig.external,
|
|
852
858
|
/node_modules/
|
|
853
859
|
],
|
|
854
860
|
resolve: {
|
|
@@ -1067,6 +1073,7 @@ const buildServer = async (ctx) => {
|
|
|
1067
1073
|
"/__vue-jsx",
|
|
1068
1074
|
"#app",
|
|
1069
1075
|
/(nuxt|nuxt3)\/(dist|src|app)/,
|
|
1076
|
+
/@monkeyplus\/flow\/(dist|src|app)/,
|
|
1070
1077
|
/@nuxt\/nitro\/(dist|src)/
|
|
1071
1078
|
]
|
|
1072
1079
|
},
|
|
@@ -1248,6 +1255,7 @@ async function bundleVite(flow) {
|
|
|
1248
1255
|
nuxt: flow,
|
|
1249
1256
|
flow,
|
|
1250
1257
|
config: vite.mergeConfig({
|
|
1258
|
+
mode: flow.options.dev ? "development" : void 0,
|
|
1251
1259
|
resolve: {
|
|
1252
1260
|
alias: {
|
|
1253
1261
|
...flow.options.alias,
|
|
@@ -1294,6 +1302,8 @@ async function bundleVite(flow) {
|
|
|
1294
1302
|
}
|
|
1295
1303
|
}, flow.options.vite)
|
|
1296
1304
|
};
|
|
1305
|
+
if (flow.options.dev)
|
|
1306
|
+
ctx.config.mode = process.env.NODE_ENV || "development";
|
|
1297
1307
|
await flow.callHook("vite:extend", ctx);
|
|
1298
1308
|
flow.hook("vite:serverCreated", (server) => {
|
|
1299
1309
|
ctx.nuxt.hook("app:templatesGenerated", () => {
|
|
@@ -1334,6 +1344,7 @@ function watch(flow) {
|
|
|
1334
1344
|
cwd: flow.options.srcDir,
|
|
1335
1345
|
ignoreInitial: true,
|
|
1336
1346
|
ignored: [
|
|
1347
|
+
isIgnoredFlow,
|
|
1337
1348
|
".flow",
|
|
1338
1349
|
"node_modules"
|
|
1339
1350
|
]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@monkeyplus/flow",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.11",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -14,10 +14,9 @@
|
|
|
14
14
|
"flow": "./bin/flow.mjs"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@monkeyplus/flow-cli": "5.0.0-beta.
|
|
18
|
-
"@monkeyplus/flow-kit": "5.0.0-beta.
|
|
19
|
-
"@monkeyplus/flow-schema": "5.0.0-beta.
|
|
20
|
-
"@nuxt/vite-builder": "3.0.0-rc.1",
|
|
17
|
+
"@monkeyplus/flow-cli": "5.0.0-beta.11",
|
|
18
|
+
"@monkeyplus/flow-kit": "5.0.0-beta.11",
|
|
19
|
+
"@monkeyplus/flow-schema": "5.0.0-beta.11",
|
|
21
20
|
"@rollup/plugin-replace": "^4.0.0",
|
|
22
21
|
"@vueuse/head": "^0.7.6",
|
|
23
22
|
"c12": "^0.2.7",
|
|
@@ -56,7 +55,7 @@
|
|
|
56
55
|
"unplugin": "^0.6.3",
|
|
57
56
|
"untyped": "^0.4.4",
|
|
58
57
|
"vite": "^2.9.9",
|
|
59
|
-
"vue": "^3"
|
|
58
|
+
"vue": "^3.2.33"
|
|
60
59
|
},
|
|
61
60
|
"devDependencies": {
|
|
62
61
|
"@types/fs-extra": "^9.0.13"
|
package/src/core/builder.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { normalize } from 'pathe';
|
|
2
2
|
import chokidar from 'chokidar';
|
|
3
3
|
import type { Flow } from '@monkeyplus/flow-schema';
|
|
4
|
+
import { isIgnoredFlow } from '@monkeyplus/flow-kit';
|
|
4
5
|
import { debounce } from 'perfect-debounce';
|
|
5
6
|
import { generateApp as _generateApp, createApp } from './app';
|
|
6
7
|
|
|
@@ -36,7 +37,7 @@ function watch(flow: Flow) {
|
|
|
36
37
|
cwd: flow.options.srcDir,
|
|
37
38
|
ignoreInitial: true,
|
|
38
39
|
ignored: [
|
|
39
|
-
|
|
40
|
+
isIgnoredFlow,
|
|
40
41
|
'.flow',
|
|
41
42
|
'node_modules',
|
|
42
43
|
],
|
|
@@ -17,12 +17,14 @@ export default eventHandler(async(event) => {
|
|
|
17
17
|
|
|
18
18
|
// console.log(flow);
|
|
19
19
|
const { page, locale, params, view } = flow.router.byUrl.lookup(url!) || {};
|
|
20
|
+
// Truncate page
|
|
21
|
+
if (!page) return;
|
|
22
|
+
|
|
20
23
|
await flow.callHook('page:scripts', scripts);
|
|
21
24
|
if (view.bundle)
|
|
22
25
|
await flow.callHook('page:chunks', view.bundle, chunks);
|
|
23
26
|
|
|
24
27
|
const templateContext = {} as any;
|
|
25
|
-
if (!page) return;
|
|
26
28
|
|
|
27
29
|
const dynamyc = params?._;
|
|
28
30
|
const contextPage = {} as any;
|
|
@@ -22,6 +22,7 @@ export async function bundleVite(flow: Flow) {
|
|
|
22
22
|
nuxt: flow,
|
|
23
23
|
flow,
|
|
24
24
|
config: vite.mergeConfig({
|
|
25
|
+
mode: flow.options.dev ? 'development' : undefined,
|
|
25
26
|
resolve: {
|
|
26
27
|
alias: {
|
|
27
28
|
...flow.options.alias,
|
|
@@ -71,6 +72,9 @@ export async function bundleVite(flow: Flow) {
|
|
|
71
72
|
},
|
|
72
73
|
}, flow.options.vite),
|
|
73
74
|
};
|
|
75
|
+
if (flow.options.dev)
|
|
76
|
+
ctx.config.mode = process.env.NODE_ENV || 'development';
|
|
77
|
+
|
|
74
78
|
await flow.callHook('vite:extend', ctx);
|
|
75
79
|
|
|
76
80
|
flow.hook('vite:serverCreated', (server: vite.ViteDevServer) => {
|
|
@@ -7,15 +7,22 @@ export const createClient = async(flow: Flow) => {
|
|
|
7
7
|
const vite = await createServer({
|
|
8
8
|
root: resolve(flow.options.rootDir),
|
|
9
9
|
base: '/_vite/',
|
|
10
|
+
|
|
10
11
|
build: {
|
|
12
|
+
|
|
11
13
|
manifest: true,
|
|
12
14
|
},
|
|
13
15
|
server: {
|
|
16
|
+
watch: {
|
|
17
|
+
ignored: ['**/.env/**', '**/.env*'],
|
|
18
|
+
},
|
|
14
19
|
middlewareMode: 'ssr',
|
|
20
|
+
//
|
|
15
21
|
},
|
|
16
22
|
});
|
|
17
23
|
const _doReload = () => {
|
|
18
|
-
vite
|
|
24
|
+
if (vite)
|
|
25
|
+
vite?.ws?.send({ type: 'full-reload' });
|
|
19
26
|
};
|
|
20
27
|
|
|
21
28
|
const doReload = debounce(_doReload, 50);
|
package/src/pages/utils.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import {
|
|
2
|
+
import { resolveFilesFlow, useNuxt } from '@monkeyplus/flow-kit';
|
|
3
3
|
import { extname, relative, resolve } from 'pathe';
|
|
4
4
|
import escapeRE from 'escape-string-regexp';
|
|
5
5
|
import { camelCase } from 'scule';
|
|
@@ -17,7 +17,7 @@ export async function resolvePagesRoutes(): Promise<Pages[]> {
|
|
|
17
17
|
|
|
18
18
|
const allRoutes: Pages[] = (await Promise.all(
|
|
19
19
|
pagesDirs.map(async(dir) => {
|
|
20
|
-
const files = await
|
|
20
|
+
const files = await resolveFilesFlow(dir, `**/*{${nuxt.options.extensions.join(',')}}`);
|
|
21
21
|
|
|
22
22
|
// Sort to make sure parent are listed first
|
|
23
23
|
|
|
@@ -22,12 +22,23 @@ export default defineFlowModule<OptionsViteClient>({
|
|
|
22
22
|
const runtimeDir = resolve(distDir, 'vite-client/runtime');
|
|
23
23
|
flow.options.alias['#viteManifest'] = resolve(flow.options.buildDir, 'viteManifest.mjs');
|
|
24
24
|
|
|
25
|
+
let vite: any;
|
|
25
26
|
if (flow.options.dev) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
flow.hook('nitro:init', async(nitro) => {
|
|
28
|
+
vite = await createClient(flow);
|
|
29
|
+
// return vite.middlewares;
|
|
30
|
+
nitro.options.devHandlers.push({
|
|
31
|
+
handler: vite.middlewares,
|
|
32
|
+
route: _options.route,
|
|
33
|
+
});
|
|
30
34
|
});
|
|
35
|
+
// addDevServerHandler({
|
|
36
|
+
// route: _options.route,
|
|
37
|
+
// handler: async(req, res) => {
|
|
38
|
+
// return await vite.middlewares(req, res);
|
|
39
|
+
// },
|
|
40
|
+
// });
|
|
41
|
+
|
|
31
42
|
addTemplate({
|
|
32
43
|
filename: 'viteManifest.mjs',
|
|
33
44
|
async getContents() {
|