nuxt-nightly 4.1.0-29279319.00ede5ce → 4.1.0-29279382.7234ae61
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/index.mjs +82 -90
- package/package.json +4 -4
package/dist/index.mjs
CHANGED
|
@@ -5,7 +5,7 @@ import { AsyncLocalStorage } from 'node:async_hooks';
|
|
|
5
5
|
import { dirname, resolve, normalize, basename, extname, relative, isAbsolute, join } from 'pathe';
|
|
6
6
|
import { createHooks, createDebugger } from 'hookable';
|
|
7
7
|
import ignore from 'ignore';
|
|
8
|
-
import { useLogger, tryUseNuxt, useNuxt, directoryToURL, resolveFiles, resolvePath, defineNuxtModule, findPath, addPlugin, addTemplate, addTypeTemplate, addComponent, useNitro, addBuildPlugin, isIgnored, resolveAlias as resolveAlias$1, addPluginTemplate, addImportsSources, addVitePlugin, createIsIgnored, updateTemplates, tryResolveModule, normalizeModuleTranspilePath, resolveNuxtModule, resolveIgnorePatterns, logger as logger$1, createResolver, importModule, tryImportModule, runWithNuxtContext, nuxtCtx, loadNuxtConfig, addWebpackPlugin, addServerPlugin, installModules, addServerTemplate, addServerHandler, addRouteMiddleware, resolveModuleWithOptions, normalizeTemplate, normalizePlugin } from '@nuxt/kit';
|
|
8
|
+
import { useLogger, tryUseNuxt, useNuxt, directoryToURL, getLayerDirectories, resolveFiles, resolvePath, defineNuxtModule, findPath, addPlugin, addTemplate, addTypeTemplate, addComponent, useNitro, addBuildPlugin, isIgnored, resolveAlias as resolveAlias$1, addPluginTemplate, addImportsSources, addVitePlugin, createIsIgnored, updateTemplates, tryResolveModule, normalizeModuleTranspilePath, resolveNuxtModule, resolveIgnorePatterns, logger as logger$1, createResolver, importModule, tryImportModule, runWithNuxtContext, nuxtCtx, loadNuxtConfig, addWebpackPlugin, addServerPlugin, installModules, addServerTemplate, addServerHandler, addRouteMiddleware, resolveModuleWithOptions, normalizeTemplate, normalizePlugin } from '@nuxt/kit';
|
|
9
9
|
import { resolvePackageJSON, readPackageJSON } from 'pkg-types';
|
|
10
10
|
import { hash, isEqual, serialize } from 'ohash';
|
|
11
11
|
import consola, { consola as consola$1 } from 'consola';
|
|
@@ -13,7 +13,7 @@ import onChange from 'on-change';
|
|
|
13
13
|
import { colors } from 'consola/utils';
|
|
14
14
|
import { resolveCompatibilityDatesFromEnv, formatDate } from 'compatx';
|
|
15
15
|
import escapeRE from 'escape-string-regexp';
|
|
16
|
-
import { withTrailingSlash, parseURL, parseQuery, joinURL, withLeadingSlash, encodePath, withoutLeadingSlash } from 'ufo';
|
|
16
|
+
import { withTrailingSlash as withTrailingSlash$1, parseURL, parseQuery, joinURL, withLeadingSlash, encodePath, withoutLeadingSlash } from 'ufo';
|
|
17
17
|
import { ImpoundPlugin } from 'impound';
|
|
18
18
|
import defu$1, { defu } from 'defu';
|
|
19
19
|
import { satisfies, coerce } from 'semver';
|
|
@@ -150,7 +150,7 @@ async function resolveTypePath(path, subpath, searchPaths = tryUseNuxt()?.option
|
|
|
150
150
|
}
|
|
151
151
|
|
|
152
152
|
function getNameFromPath(path, relativeTo) {
|
|
153
|
-
const relativePath = relativeTo ? normalize(path).replace(withTrailingSlash(normalize(relativeTo)), "") : basename(path);
|
|
153
|
+
const relativePath = relativeTo ? normalize(path).replace(withTrailingSlash$1(normalize(relativeTo)), "") : basename(path);
|
|
154
154
|
const prefixParts = splitByCase(dirname(relativePath));
|
|
155
155
|
const fileName = basename(relativePath, extname(relativePath));
|
|
156
156
|
const segments = resolveComponentNameSegments(fileName.toLowerCase() === "index" ? "" : fileName, prefixParts).filter(Boolean);
|
|
@@ -256,9 +256,7 @@ const SegmentParserState = {
|
|
|
256
256
|
};
|
|
257
257
|
const enUSComparator = new Intl.Collator("en-US");
|
|
258
258
|
async function resolvePagesRoutes(pattern, nuxt = useNuxt()) {
|
|
259
|
-
const pagesDirs = nuxt.
|
|
260
|
-
(layer) => resolve(layer.config.srcDir, (layer.config.rootDir === nuxt.options.rootDir ? nuxt.options.dir : layer.config.dir)?.pages || "pages")
|
|
261
|
-
);
|
|
259
|
+
const pagesDirs = getLayerDirectories(nuxt).map((d) => d.appPages);
|
|
262
260
|
const scannedFiles = [];
|
|
263
261
|
for (const dir of pagesDirs) {
|
|
264
262
|
const files = await resolveFiles(dir, pattern);
|
|
@@ -1204,9 +1202,7 @@ const pagesModule = defineNuxtModule({
|
|
|
1204
1202
|
};
|
|
1205
1203
|
const useExperimentalTypedPages = nuxt.options.experimental.typedPages;
|
|
1206
1204
|
const builtInRouterOptions = await findPath(resolve(runtimeDir, "router.options")) || resolve(runtimeDir, "router.options");
|
|
1207
|
-
const pagesDirs = nuxt.
|
|
1208
|
-
(layer) => resolve(layer.config.srcDir, (layer.config.rootDir === nuxt.options.rootDir ? nuxt.options : layer.config).dir?.pages || "pages")
|
|
1209
|
-
);
|
|
1205
|
+
const pagesDirs = getLayerDirectories(nuxt).map((dirs) => dirs.appPages);
|
|
1210
1206
|
nuxt.options.alias["#vue-router"] = "vue-router";
|
|
1211
1207
|
const routerPath = await resolveTypePath("vue-router", "", nuxt.options.modulesDir) || "vue-router";
|
|
1212
1208
|
nuxt.hook("prepare:types", ({ tsConfig }) => {
|
|
@@ -1381,14 +1377,11 @@ const pagesModule = defineNuxtModule({
|
|
|
1381
1377
|
routerImports.from = "vue-router";
|
|
1382
1378
|
}
|
|
1383
1379
|
});
|
|
1384
|
-
const updateTemplatePaths = nuxt.
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
resolve(l.config.srcDir || l.cwd, dir?.middleware || "middleware") + "/"
|
|
1390
|
-
];
|
|
1391
|
-
});
|
|
1380
|
+
const updateTemplatePaths = getLayerDirectories(nuxt).flatMap((dirs) => [
|
|
1381
|
+
dirs.appPages,
|
|
1382
|
+
dirs.appLayouts,
|
|
1383
|
+
dirs.appMiddleware
|
|
1384
|
+
]);
|
|
1392
1385
|
function isPage(file, pages = nuxt.apps.default?.pages) {
|
|
1393
1386
|
if (!pages) {
|
|
1394
1387
|
return false;
|
|
@@ -2283,7 +2276,7 @@ async function scanComponents(dirs, srcDir) {
|
|
|
2283
2276
|
}
|
|
2284
2277
|
for (const _file of files) {
|
|
2285
2278
|
const filePath = join(dir.path, _file);
|
|
2286
|
-
if (scannedPaths.find((d) => filePath.startsWith(withTrailingSlash(d))) || isIgnored(filePath)) {
|
|
2279
|
+
if (scannedPaths.find((d) => filePath.startsWith(withTrailingSlash$1(d))) || isIgnored(filePath)) {
|
|
2287
2280
|
continue;
|
|
2288
2281
|
}
|
|
2289
2282
|
if (filePaths.has(filePath)) {
|
|
@@ -3662,7 +3655,7 @@ const importsModule = defineNuxtModule({
|
|
|
3662
3655
|
});
|
|
3663
3656
|
nuxt.options.alias["#imports"] = join(nuxt.options.buildDir, "imports");
|
|
3664
3657
|
addBuildPlugin(TransformPlugin({ ctx, options, sourcemap: !!nuxt.options.sourcemap.server || !!nuxt.options.sourcemap.client }));
|
|
3665
|
-
const priorities = nuxt.
|
|
3658
|
+
const priorities = getLayerDirectories(nuxt).map((dirs, i) => [dirs.app, -i]).sort(([a], [b]) => b.length - a.length);
|
|
3666
3659
|
const IMPORTS_TEMPLATE_RE = /\/imports\.(?:d\.ts|mjs)$/;
|
|
3667
3660
|
function isImportsTemplate(template) {
|
|
3668
3661
|
return IMPORTS_TEMPLATE_RE.test(template.filename);
|
|
@@ -3765,7 +3758,7 @@ function addDeclarationTemplates(ctx, options) {
|
|
|
3765
3758
|
});
|
|
3766
3759
|
}
|
|
3767
3760
|
|
|
3768
|
-
const version = "4.1.0-
|
|
3761
|
+
const version = "4.1.0-29279382.7234ae61";
|
|
3769
3762
|
|
|
3770
3763
|
const createImportProtectionPatterns = (nuxt, options) => {
|
|
3771
3764
|
const patterns = [];
|
|
@@ -4006,12 +3999,13 @@ const logLevelMapReverse = {
|
|
|
4006
3999
|
const NODE_MODULES_RE = /(?<=\/)node_modules\/(.+)$/;
|
|
4007
4000
|
const PNPM_NODE_MODULES_RE = /\.pnpm\/.+\/node_modules\/(.+)$/;
|
|
4008
4001
|
async function initNitro(nuxt) {
|
|
4009
|
-
const
|
|
4010
|
-
|
|
4011
|
-
|
|
4012
|
-
|
|
4002
|
+
const layerDirs = getLayerDirectories(nuxt);
|
|
4003
|
+
const excludePaths = layerDirs.flatMap((dirs) => [
|
|
4004
|
+
dirs.root.match(NODE_MODULES_RE)?.[1]?.replace(/\/$/, ""),
|
|
4005
|
+
dirs.root.match(PNPM_NODE_MODULES_RE)?.[1]?.replace(/\/$/, "")
|
|
4006
|
+
].filter((dir) => Boolean(dir)).map((dir) => escapeRE(dir)));
|
|
4013
4007
|
const excludePattern = excludePaths.length ? [new RegExp(`node_modules\\/(?!${excludePaths.join("|")})`)] : [/node_modules/];
|
|
4014
|
-
const rootDirWithSlash = withTrailingSlash(nuxt.options.rootDir);
|
|
4008
|
+
const rootDirWithSlash = withTrailingSlash$1(nuxt.options.rootDir);
|
|
4015
4009
|
const moduleEntryPaths = [];
|
|
4016
4010
|
for (const m of nuxt.options._installedModules) {
|
|
4017
4011
|
const path = m.meta?.rawPath || m.entryPath;
|
|
@@ -4078,7 +4072,7 @@ async function initNitro(nuxt) {
|
|
|
4078
4072
|
projectRoot: nuxt.options.rootDir,
|
|
4079
4073
|
filename: join(nuxt.options.analyzeDir, "{name}.html")
|
|
4080
4074
|
} : false,
|
|
4081
|
-
scanDirs:
|
|
4075
|
+
scanDirs: layerDirs.map((dirs) => dirs.server),
|
|
4082
4076
|
renderer: resolve(distDir, "core/runtime/nitro/handlers/renderer"),
|
|
4083
4077
|
nodeModulesDirs: nuxt.options.modulesDir,
|
|
4084
4078
|
handlers: nuxt.options.serverHandlers,
|
|
@@ -4095,9 +4089,7 @@ async function initNitro(nuxt) {
|
|
|
4095
4089
|
"/__nuxt_error": { cache: false }
|
|
4096
4090
|
},
|
|
4097
4091
|
appConfig: nuxt.options.appConfig,
|
|
4098
|
-
appConfigFiles:
|
|
4099
|
-
(layer) => resolve(layer.config.srcDir, "app.config")
|
|
4100
|
-
),
|
|
4092
|
+
appConfigFiles: layerDirs.map((dirs) => join(dirs.app, "app.config")),
|
|
4101
4093
|
typescript: {
|
|
4102
4094
|
strict: true,
|
|
4103
4095
|
generateTsConfig: true,
|
|
@@ -4116,12 +4108,7 @@ async function initNitro(nuxt) {
|
|
|
4116
4108
|
join(moduleDir, "dist/runtime/server")
|
|
4117
4109
|
];
|
|
4118
4110
|
}),
|
|
4119
|
-
...nuxt.options.
|
|
4120
|
-
(layer) => relativeWithDot(
|
|
4121
|
-
nuxt.options.buildDir,
|
|
4122
|
-
resolve(layer.config.rootDir, layer.config.dir?.shared ?? "shared", "**/*.d.ts")
|
|
4123
|
-
)
|
|
4124
|
-
)
|
|
4111
|
+
...getLayerDirectories(nuxt).map((dirs) => relativeWithDot(nuxt.options.buildDir, join(dirs.shared, "**/*.d.ts")))
|
|
4125
4112
|
],
|
|
4126
4113
|
exclude: [
|
|
4127
4114
|
...nuxt.options.modulesDir.map((m) => relativeWithDot(nuxt.options.buildDir, m)),
|
|
@@ -4136,7 +4123,7 @@ async function initNitro(nuxt) {
|
|
|
4136
4123
|
maxAge: 31536e3,
|
|
4137
4124
|
baseURL: nuxt.options.app.buildAssetsDir
|
|
4138
4125
|
},
|
|
4139
|
-
...
|
|
4126
|
+
...getLayerDirectories(nuxt).filter((dirs) => existsSync(dirs.public)).map((dirs) => ({ dir: dirs.public }))
|
|
4140
4127
|
],
|
|
4141
4128
|
prerender: {
|
|
4142
4129
|
ignoreUnprefixedPublicAssets: true,
|
|
@@ -4158,7 +4145,7 @@ async function initNitro(nuxt) {
|
|
|
4158
4145
|
"nuxt-nightly/dist",
|
|
4159
4146
|
distDir,
|
|
4160
4147
|
// Ensure app config files have auto-imports injected even if they are pure .js files
|
|
4161
|
-
...nuxt.
|
|
4148
|
+
...getLayerDirectories(nuxt).map((dirs) => join(dirs.app, "app.config"))
|
|
4162
4149
|
],
|
|
4163
4150
|
traceInclude: [
|
|
4164
4151
|
// force include files used in generated code from the runtime-compiler
|
|
@@ -4353,8 +4340,8 @@ async function initNitro(nuxt) {
|
|
|
4353
4340
|
}
|
|
4354
4341
|
nitroConfig.rollupConfig.plugins = await nitroConfig.rollupConfig.plugins || [];
|
|
4355
4342
|
nitroConfig.rollupConfig.plugins = toArray(nitroConfig.rollupConfig.plugins);
|
|
4356
|
-
const sharedDir = withTrailingSlash(resolve(nuxt.options.rootDir, nuxt.options.dir.shared));
|
|
4357
|
-
const relativeSharedDir = withTrailingSlash(relative(nuxt.options.rootDir, resolve(nuxt.options.rootDir, nuxt.options.dir.shared)));
|
|
4343
|
+
const sharedDir = withTrailingSlash$1(resolve(nuxt.options.rootDir, nuxt.options.dir.shared));
|
|
4344
|
+
const relativeSharedDir = withTrailingSlash$1(relative(nuxt.options.rootDir, resolve(nuxt.options.rootDir, nuxt.options.dir.shared)));
|
|
4358
4345
|
const sharedPatterns = [/^#shared\//, new RegExp("^" + escapeRE(sharedDir)), new RegExp("^" + escapeRE(relativeSharedDir))];
|
|
4359
4346
|
nitroConfig.rollupConfig.plugins.push(
|
|
4360
4347
|
ImpoundPlugin.rollup({
|
|
@@ -4663,6 +4650,7 @@ const schemaModule = defineNuxtModule({
|
|
|
4663
4650
|
schema = await resolveSchema$1();
|
|
4664
4651
|
});
|
|
4665
4652
|
nuxt.hooks.hook("build:done", () => writeSchema(schema));
|
|
4653
|
+
const layerDirs = getLayerDirectories(nuxt);
|
|
4666
4654
|
if (nuxt.options.dev) {
|
|
4667
4655
|
const onChange = debounce(async () => {
|
|
4668
4656
|
schema = await resolveSchema$1();
|
|
@@ -4673,8 +4661,8 @@ const schemaModule = defineNuxtModule({
|
|
|
4673
4661
|
const { subscribe } = await importModule("@parcel/watcher", {
|
|
4674
4662
|
url: [nuxt.options.rootDir, ...nuxt.options.modulesDir].map((dir) => directoryToURL(dir))
|
|
4675
4663
|
});
|
|
4676
|
-
for (const
|
|
4677
|
-
const subscription = await subscribe(
|
|
4664
|
+
for (const dirs of layerDirs) {
|
|
4665
|
+
const subscription = await subscribe(dirs.root, onChange, {
|
|
4678
4666
|
ignore: ["!nuxt.schema.*"]
|
|
4679
4667
|
});
|
|
4680
4668
|
nuxt.hook("close", () => subscription.unsubscribe());
|
|
@@ -4685,9 +4673,9 @@ const schemaModule = defineNuxtModule({
|
|
|
4685
4673
|
}
|
|
4686
4674
|
}
|
|
4687
4675
|
const isIgnored = createIsIgnored(nuxt);
|
|
4688
|
-
const
|
|
4676
|
+
const rootDirs = layerDirs.map((layer) => layer.root);
|
|
4689
4677
|
const SCHEMA_RE = /(?:^|\/)nuxt.schema.\w+$/;
|
|
4690
|
-
const watcher = watch$1(
|
|
4678
|
+
const watcher = watch$1(rootDirs, {
|
|
4691
4679
|
...nuxt.options.watchers.chokidar,
|
|
4692
4680
|
depth: 1,
|
|
4693
4681
|
ignored: [
|
|
@@ -4703,8 +4691,8 @@ const schemaModule = defineNuxtModule({
|
|
|
4703
4691
|
async function resolveSchema$1() {
|
|
4704
4692
|
globalThis.defineNuxtSchema = (val) => val;
|
|
4705
4693
|
const schemaDefs = [nuxt.options.$schema];
|
|
4706
|
-
for (const
|
|
4707
|
-
const filePath = await resolver.resolvePath(
|
|
4694
|
+
for (const dirs of layerDirs) {
|
|
4695
|
+
const filePath = await resolver.resolvePath(join(dirs.root, "nuxt.schema"));
|
|
4708
4696
|
if (filePath && existsSync(filePath)) {
|
|
4709
4697
|
let loadedConfig;
|
|
4710
4698
|
try {
|
|
@@ -5428,6 +5416,7 @@ const nightlies = {
|
|
|
5428
5416
|
};
|
|
5429
5417
|
let warnedAboutCompatDate = false;
|
|
5430
5418
|
async function initNuxt(nuxt) {
|
|
5419
|
+
const layerDirs = getLayerDirectories(nuxt);
|
|
5431
5420
|
for (const config of nuxt.options._layers.map((layer) => layer.config).reverse()) {
|
|
5432
5421
|
if (config.hooks) {
|
|
5433
5422
|
nuxt.hooks.addHooks(config.hooks);
|
|
@@ -5503,8 +5492,8 @@ Using \`${fallbackCompatibilityDate}\` as fallback. More info at: ${colors.under
|
|
|
5503
5492
|
opts.tsConfig.compilerOptions = defu$1(opts.tsConfig.compilerOptions, { paths: { ...paths } });
|
|
5504
5493
|
opts.nodeTsConfig.compilerOptions = defu$1(opts.nodeTsConfig.compilerOptions, { paths: { ...paths } });
|
|
5505
5494
|
opts.sharedTsConfig.compilerOptions = defu$1(opts.sharedTsConfig.compilerOptions, { paths: { ...paths } });
|
|
5506
|
-
for (const
|
|
5507
|
-
const declaration = join(
|
|
5495
|
+
for (const dirs of layerDirs) {
|
|
5496
|
+
const declaration = join(dirs.root, "index.d.ts");
|
|
5508
5497
|
if (existsSync(declaration)) {
|
|
5509
5498
|
opts.references.push({ path: declaration });
|
|
5510
5499
|
opts.nodeReferences.push({ path: declaration });
|
|
@@ -5621,10 +5610,18 @@ Using \`${fallbackCompatibilityDate}\` as fallback. More info at: ${colors.under
|
|
|
5621
5610
|
}
|
|
5622
5611
|
nuxt.options.build.transpile.push("nuxt/app");
|
|
5623
5612
|
nuxt.options.build.transpile.push(
|
|
5624
|
-
...
|
|
5613
|
+
...layerDirs.filter((i) => i.root.includes("node_modules")).map((i) => i.root.replace(/\/$/, ""))
|
|
5625
5614
|
);
|
|
5626
|
-
const locallyScannedLayersDirs =
|
|
5627
|
-
|
|
5615
|
+
const locallyScannedLayersDirs = layerDirs.map((l) => join(l.root, "layers/"));
|
|
5616
|
+
const rootWithTrailingSlash = withTrailingSlash(nuxt.options.rootDir);
|
|
5617
|
+
for (const dirs of layerDirs) {
|
|
5618
|
+
if (dirs.root === rootWithTrailingSlash) {
|
|
5619
|
+
continue;
|
|
5620
|
+
}
|
|
5621
|
+
if (locallyScannedLayersDirs.every((dir) => !dirs.root.startsWith(dir))) {
|
|
5622
|
+
nuxt.options.modulesDir.push(join(dirs.root, "node_modules"));
|
|
5623
|
+
}
|
|
5624
|
+
}
|
|
5628
5625
|
await nuxt.callHook("modules:before");
|
|
5629
5626
|
const { paths: watchedModulePaths, resolvedModulePaths, modules } = await resolveModules(nuxt);
|
|
5630
5627
|
nuxt.options.watch.push(...watchedModulePaths);
|
|
@@ -5816,7 +5813,7 @@ export default defineNuxtPlugin({
|
|
|
5816
5813
|
if (watchedModulePaths.has(path)) {
|
|
5817
5814
|
return nuxt.callHook("restart", { hard: true });
|
|
5818
5815
|
}
|
|
5819
|
-
const layerRelativePaths = new Set(nuxt.
|
|
5816
|
+
const layerRelativePaths = new Set(getLayerDirectories(nuxt).map((l) => relative(l.app, path)));
|
|
5820
5817
|
for (const pattern of nuxt.options.watch) {
|
|
5821
5818
|
if (typeof pattern === "string") {
|
|
5822
5819
|
if (pattern === path || layerRelativePaths.has(pattern)) {
|
|
@@ -5995,10 +5992,10 @@ async function resolveModules(nuxt) {
|
|
|
5995
5992
|
}
|
|
5996
5993
|
}
|
|
5997
5994
|
}
|
|
5998
|
-
const modulesDir = (config.rootDir === nuxt.options.rootDir ? nuxt.options.dir : config.dir)?.modules || "modules";
|
|
5999
|
-
const layerModules = await resolveFiles(
|
|
6000
|
-
|
|
6001
|
-
|
|
5995
|
+
const modulesDir = resolve(config.srcDir, (config.rootDir === nuxt.options.rootDir ? nuxt.options.dir : config.dir)?.modules || "modules");
|
|
5996
|
+
const layerModules = await resolveFiles(modulesDir, [
|
|
5997
|
+
`*{${nuxt.options.extensions.join(",")}}`,
|
|
5998
|
+
`*/index{${nuxt.options.extensions.join(",")}}`
|
|
6002
5999
|
]);
|
|
6003
6000
|
for (const module of layerModules) {
|
|
6004
6001
|
paths.add(module);
|
|
@@ -6049,6 +6046,9 @@ async function resolveTypescriptPaths(nuxt) {
|
|
|
6049
6046
|
})).then((r) => r.flat()));
|
|
6050
6047
|
return paths;
|
|
6051
6048
|
}
|
|
6049
|
+
function withTrailingSlash(dir) {
|
|
6050
|
+
return dir.replace(/[^/]$/, "$&/");
|
|
6051
|
+
}
|
|
6052
6052
|
|
|
6053
6053
|
const vueShim = {
|
|
6054
6054
|
filename: "types/vue-shim.d.ts",
|
|
@@ -6741,26 +6741,18 @@ async function compileTemplate(template, ctx) {
|
|
|
6741
6741
|
throw new Error("[nuxt] Invalid template. Templates must have either `src` or `getContents`: " + JSON.stringify(template));
|
|
6742
6742
|
}
|
|
6743
6743
|
async function resolveApp(nuxt, app) {
|
|
6744
|
-
|
|
6745
|
-
|
|
6746
|
-
|
|
6747
|
-
join(layer.config.srcDir, "app")
|
|
6748
|
-
])
|
|
6749
|
-
);
|
|
6744
|
+
const layerDirs = getLayerDirectories(nuxt);
|
|
6745
|
+
const reversedLayerDirs = [...layerDirs].reverse();
|
|
6746
|
+
app.mainComponent ||= await findPath(layerDirs.flatMap((d) => [join(d.app, "App"), join(d.app, "app")]));
|
|
6750
6747
|
app.mainComponent ||= resolve(nuxt.options.appDir, "components/welcome.vue");
|
|
6751
6748
|
app.rootComponent ||= await findPath(["~/app.root", resolve(nuxt.options.appDir, "components/nuxt-root.vue")]);
|
|
6752
|
-
app.errorComponent ||= await findPath(
|
|
6753
|
-
nuxt.options._layers.map((layer) => join(layer.config.srcDir, "error"))
|
|
6754
|
-
) ?? resolve(nuxt.options.appDir, "components/nuxt-error-page.vue");
|
|
6749
|
+
app.errorComponent ||= await findPath(layerDirs.map((d) => join(d.app, "error"))) ?? resolve(nuxt.options.appDir, "components/nuxt-error-page.vue");
|
|
6755
6750
|
const extensionGlob = nuxt.options.extensions.join(",");
|
|
6756
|
-
const layerConfigs = nuxt.options._layers.map((layer) => layer.config);
|
|
6757
|
-
const reversedConfigs = layerConfigs.slice().reverse();
|
|
6758
6751
|
const layouts = {};
|
|
6759
|
-
for (const
|
|
6760
|
-
const
|
|
6761
|
-
const layoutFiles = await resolveFiles(config.srcDir, `${layoutDir}/**/*{${extensionGlob}}`);
|
|
6752
|
+
for (const dirs of layerDirs) {
|
|
6753
|
+
const layoutFiles = await resolveFiles(dirs.appLayouts, `**/*{${extensionGlob}}`);
|
|
6762
6754
|
for (const file of layoutFiles) {
|
|
6763
|
-
const name = getNameFromPath(file,
|
|
6755
|
+
const name = getNameFromPath(file, dirs.appLayouts);
|
|
6764
6756
|
if (!name) {
|
|
6765
6757
|
logger.warn(`No layout name could be resolved for \`${resolveToAlias(file, nuxt)}\`. Bear in mind that \`index\` is ignored for the purpose of creating a layout name.`);
|
|
6766
6758
|
continue;
|
|
@@ -6769,11 +6761,10 @@ async function resolveApp(nuxt, app) {
|
|
|
6769
6761
|
}
|
|
6770
6762
|
}
|
|
6771
6763
|
let middleware = [];
|
|
6772
|
-
for (const
|
|
6773
|
-
const
|
|
6774
|
-
|
|
6775
|
-
|
|
6776
|
-
`${middlewareDir}/*/index{${extensionGlob}}`
|
|
6764
|
+
for (const dirs of reversedLayerDirs) {
|
|
6765
|
+
const middlewareFiles = await resolveFiles(dirs.appMiddleware, [
|
|
6766
|
+
`*{${extensionGlob}}`,
|
|
6767
|
+
`*/index{${extensionGlob}}`
|
|
6777
6768
|
]);
|
|
6778
6769
|
for (const file of middlewareFiles) {
|
|
6779
6770
|
const name = getNameFromPath(file);
|
|
@@ -6784,15 +6775,17 @@ async function resolveApp(nuxt, app) {
|
|
|
6784
6775
|
middleware.push({ name, path: file, global: hasSuffix(file, ".global") });
|
|
6785
6776
|
}
|
|
6786
6777
|
}
|
|
6778
|
+
const reversedLayers = nuxt.options._layers.slice().reverse();
|
|
6787
6779
|
let plugins = [];
|
|
6788
|
-
for (
|
|
6789
|
-
const
|
|
6780
|
+
for (let i = 0; i < reversedLayerDirs.length; i++) {
|
|
6781
|
+
const config = reversedLayers[i].config;
|
|
6782
|
+
const dirs = reversedLayerDirs[i];
|
|
6790
6783
|
plugins.push(...[
|
|
6791
6784
|
...config.plugins || [],
|
|
6792
|
-
...
|
|
6793
|
-
|
|
6794
|
-
|
|
6795
|
-
])
|
|
6785
|
+
...await resolveFiles(dirs.appPlugins, [
|
|
6786
|
+
`*{${extensionGlob}}`,
|
|
6787
|
+
`*/index{${extensionGlob}}`
|
|
6788
|
+
])
|
|
6796
6789
|
].map((plugin) => normalizePlugin(plugin)));
|
|
6797
6790
|
}
|
|
6798
6791
|
for (const p of [...nuxt.options.plugins].reverse()) {
|
|
@@ -6804,8 +6797,8 @@ async function resolveApp(nuxt, app) {
|
|
|
6804
6797
|
middleware = uniqueBy(await resolvePaths(nuxt, [...middleware].reverse(), "path"), "name").reverse();
|
|
6805
6798
|
plugins = uniqueBy(await resolvePaths(nuxt, plugins, "src"), "src");
|
|
6806
6799
|
const configs = [];
|
|
6807
|
-
for (const
|
|
6808
|
-
const appConfigPath = await findPath(
|
|
6800
|
+
for (const dirs of layerDirs) {
|
|
6801
|
+
const appConfigPath = await findPath(join(dirs.app, "app.config"));
|
|
6809
6802
|
if (appConfigPath) {
|
|
6810
6803
|
configs.push(appConfigPath);
|
|
6811
6804
|
}
|
|
@@ -7170,8 +7163,8 @@ async function build(nuxt) {
|
|
|
7170
7163
|
nuxt.hook("builder:watch", async (event, relativePath) => {
|
|
7171
7164
|
if (event === "add" || event === "unlink") {
|
|
7172
7165
|
const path = resolve(nuxt.options.srcDir, relativePath);
|
|
7173
|
-
for (const
|
|
7174
|
-
const relativePath2 = relative(
|
|
7166
|
+
for (const dirs of getLayerDirectories(nuxt)) {
|
|
7167
|
+
const relativePath2 = relative(dirs.app, path);
|
|
7175
7168
|
if (/^app\./i.test(relativePath2)) {
|
|
7176
7169
|
app.mainComponent = void 0;
|
|
7177
7170
|
break;
|
|
@@ -7236,7 +7229,7 @@ async function watch(nuxt) {
|
|
|
7236
7229
|
function createWatcher() {
|
|
7237
7230
|
const nuxt = useNuxt();
|
|
7238
7231
|
const isIgnored2 = createIsIgnored(nuxt);
|
|
7239
|
-
const watcher = watch$1(nuxt.
|
|
7232
|
+
const watcher = watch$1(getLayerDirectories(nuxt).map((dirs) => dirs.app), {
|
|
7240
7233
|
...nuxt.options.watchers.chokidar,
|
|
7241
7234
|
ignoreInitial: true,
|
|
7242
7235
|
ignored: [isIgnored2, /[\\/]node_modules[\\/]/]
|
|
@@ -7368,12 +7361,11 @@ async function loadBuilder(nuxt, builder) {
|
|
|
7368
7361
|
}
|
|
7369
7362
|
function resolvePathsToWatch(nuxt, opts = {}) {
|
|
7370
7363
|
const pathsToWatch = /* @__PURE__ */ new Set();
|
|
7371
|
-
for (const
|
|
7372
|
-
|
|
7373
|
-
if (!dir || isIgnored(dir)) {
|
|
7364
|
+
for (const dirs of getLayerDirectories(nuxt)) {
|
|
7365
|
+
if (!dirs.app || isIgnored(dirs.app)) {
|
|
7374
7366
|
continue;
|
|
7375
7367
|
}
|
|
7376
|
-
pathsToWatch.add(
|
|
7368
|
+
pathsToWatch.add(dirs.app);
|
|
7377
7369
|
}
|
|
7378
7370
|
for (const pattern of nuxt.options.watch) {
|
|
7379
7371
|
if (typeof pattern !== "string") {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nuxt-nightly",
|
|
3
|
-
"version": "4.1.0-
|
|
3
|
+
"version": "4.1.0-29279382.7234ae61",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/nuxt/nuxt.git",
|
|
@@ -67,10 +67,10 @@
|
|
|
67
67
|
"@nuxt/cli": "npm:@nuxt/cli-nightly@latest",
|
|
68
68
|
"@nuxt/devalue": "^2.0.2",
|
|
69
69
|
"@nuxt/devtools": "^2.6.3",
|
|
70
|
-
"@nuxt/kit": "npm:@nuxt/kit-nightly@4.1.0-
|
|
71
|
-
"@nuxt/schema": "npm:@nuxt/schema-nightly@4.1.0-
|
|
70
|
+
"@nuxt/kit": "npm:@nuxt/kit-nightly@4.1.0-29279382.7234ae61",
|
|
71
|
+
"@nuxt/schema": "npm:@nuxt/schema-nightly@4.1.0-29279382.7234ae61",
|
|
72
72
|
"@nuxt/telemetry": "^2.6.6",
|
|
73
|
-
"@nuxt/vite-builder": "npm:@nuxt/vite-builder-nightly@4.1.0-
|
|
73
|
+
"@nuxt/vite-builder": "npm:@nuxt/vite-builder-nightly@4.1.0-29279382.7234ae61",
|
|
74
74
|
"@unhead/vue": "^2.0.14",
|
|
75
75
|
"@vue/shared": "^3.5.20",
|
|
76
76
|
"c12": "^3.2.0",
|